struts中如何返回json格式的数据

我本来用printwriter的,但是觉得这样不好,而且在struts中配type=json比较麻烦,再或者inputstream乱码不容易处理!还有别的方法么?是转好的... 我本来用printwriter的,但是觉得这样不好,而且在struts中配type=json比较麻烦,再或者inputstream乱码不容易处理!
还有别的方法么?
是转好的json字符串如何写到前台,真正的项目中一般会怎么写?
展开
 我来答
百度网友c5d2049
2012-08-24 · TA获得超过972个赞
知道小有建树答主
回答量:438
采纳率:0%
帮助的人:326万
展开全部
哥们你都没理解!
首先,你可以写个公共的方法用来输出json的,所以就不用每次都写!
protected PrintWriter out() {
response.setCharacterEncoding("UTF-8");
PrintWriter writer = null;
try {
writer = response.getWriter();
} catch (IOException e) {
e.printStackTrace();
}
return writer;
}

然后 out()..print("这里放你的json字符串");
我一般是用json-lib包,这包转化;
如 我现在是转化的集合 JSONArray jsonArray = JSONUtil.getJSONArray(searchList);
然后我就把这个输出去,out().print(jsonArray.toString());,亲就可以去前台接收了
Struts2返回的方法是 return null;
如:
public String getDutyUserShow() {
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
List<EcsDutyInfoDTO> searchList = ecsDutyService
.findDutyUserToday(format.format(new Date()));
if (searchList != null) {
JSONArray jsonArray = JSONUtil.getJSONArray(searchList);
System.out.println(jsonArray.toString());
out()
.print(
"{success:true,data:" + "" + jsonArray.toString()
+ "}");
} else {
out().print("{success:true,data:{[]}}");
}
return null;
}
更多追问追答
追问
我有个工具类的来生成这个printwriter,但是我写成了单例,就是只能生成一个对象,这样的第一次输出到前台之后我执行close方法,它肯定就不能再次输出了,但是不close会不会有问题?
追答
为何要close?
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
可以叫我表哥
推荐于2016-10-06 · 知道合伙人数码行家
可以叫我表哥
知道合伙人数码行家
采纳数:25897 获赞数:1464983
2010年毕业于北京化工大学北方学院计算机科学与技术专业毕业,学士学位,工程电子技术行业4年从业经验。

向TA提问 私信TA
展开全部
struts2配置文件package继承json-default;
action的result type="json" 。

Struts 是Apache软件基金会(ASF)赞助的一个开源项目。它最初是Jakarta项目中的一个子项目,并在2004年3月成为ASF的顶级项目。它通过采用JavaServlet/JSP技术,实现了基于Java EEWeb应用的MVC设计模式的应用框架,是MVC经典设计模式中的一个经典产品。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
searone
2012-08-26 · 超过28用户采纳过TA的回答
知道答主
回答量:147
采纳率:0%
帮助的人:89万
展开全部
json咯,很简单的嘛。你用jquery + ajax + json + ssh。。。这个配置嘛。
更多追问追答
追问
我正在用EXT的spring MVC,我只是想问一下用哪种方式把数据输送到前台是最常用的方法,项目中一般怎么把ajax获取到的结果从action中输出去
追答
ext 我没有用这个,也不熟悉,我用的是ssh,现在马上大三了。。。。action = ‘namespaceName/actionName!methodName’?dataName' 你直接在javascript吧取到 的 值,不管你使用什么方法取到的,直接赋值给 dataname,然后拼接字符串就可以了。。点击提交按钮的时候,你就调用你拼接字符串的那个方法,action的路径和带的属性就改变了。应该是这样吧。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
568145421
2012-08-22 · 知道合伙人软件行家
568145421
知道合伙人软件行家
采纳数:1353 获赞数:6756

向TA提问 私信TA
展开全部
你好,用没有用第三方jar包,就是那个json.jar来返回json格式的数据呢。
更多追问追答
追问
不是啊,我不是问如何转成json格式,而是问转好的字符串怎么写到前台去,项目中常用的方法是什么?
追答
struts不就有没,项目中常用的就是直接将这个字符串转发到前台。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
蓝星人抢不到
2012-08-24 · TA获得超过763个赞
知道小有建树答主
回答量:924
采纳率:0%
帮助的人:600万
展开全部
只是小范围转换的话,有个JSON-java的开源项目
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式