struts2.3 action 返回JSON数据调试过程中报错
最终定位到json-plugin的jar包版本不一致导致
struts2-core-2.3.16.3.jar
struts2-json-plugin-2.3.16.jar
struts2-spring-plugin-2.3.16.3.jar
xwork-core-2.3.16.3.jar
action返回json格式方法如下:(引至互联网)
1.传统方式JSON输出
HttpServletResponse response = this.getResponse();
response.setContentType("application/json;charset=utf-8");
response.setCharacterEncoding("utf-8");
PrintWriter pw = response.getWriter();
String str = JSONArray.fromObject(list).toString();
pw.write(str);
pw.flush();
pw.close();
页面上就获取到了
2.struts 配置方式
struts.xml:
<package ...... extends="json-default">
<action name="xxxxx">
<result type="json" name="success">
<param name="root">jsonMap</param>
</result>
</action>
xxx.action:
Map jsonMap;
set...get...//生成set、get方法
方法里边:
jsonMap = new HashMap<String Object>();
jsonMap.put("list",list);
页面:
回调函数:function(result){
var list = result.list;
for(var i=0;i<list.length;i++){
var name = list[i].name;//假设list[i]里边有个属性name;
}
}
参考:
http://blog.sina.com.cn/s/blog_64e467d60101i8ez.html
http://www.cnblogs.com/doit8791/p/4294276.html