本文共 1668 字,大约阅读时间需要 5 分钟。
一直以来都是使用SpringMVC,最近不是很忙所以学习了一下Struts2.以前在项目中很多时候都是使用JQuery请求的Json。
当然在SpringMVC中获取Json也是有多种方式的,比如:
1 2 3 4 5 6 7 8 9 | JSONArray json = JSONArray.fromObject(childNode.toArray()); String s = json.toString(); response.setContentType( "text/json; charset=UTF-8" ); response.setCharacterEncoding( "UTF-8" ); try { response.getWriter().write(s); } catch (IOException e) { e.printStackTrace(); } |
我大多数情况下都是使用Gson的,上述示例使用了json-lib-2.3-jdk15.jar。
下面我将使用struts2+jquery+json集成获取JSON,需要lib中包含struts2-json-plugin-2.3.7.jar和json-lib-2.3-jdk15.jar。
UserAction:
1 2 3 4 5 6 7 8 9 10 | public String jsonUser() throws Exception{ UserService uService= new UserService(); List<User> list=uService.findByAll(); Gson gson= new Gson(); result=gson.toJson(list); for (User user : list) { System.out.println(gson.toJson(list)+ "=====================" +user.getId()+ "--" +user.getName()); } return SUCCESS; } |
其中result是UserAction的一个属性变量:
1 2 3 4 5 6 7 8 | // 返回结果给客户端 private String result; public String getResult() { return result; } public void setResult(String result) { this .result = result; } |
struts.xml:
1 2 3 4 5 6 7 8 | < package name= "jsonUser" extends = "json-default" > <!-- 获取所有User的JSON --> <action name= "jsonuser" class = "com.mzsx.user.action.UserAction" method= "jsonUser" > <result type= "json" > <param name= "root" >result</param> </result> </action> </ package > |
最值得注意的是extends=
"json-default",<resulttype=
"json"
>和<paramname=
"root"
>result</param>。
为了简便,我在前端页面的js为:
1 2 3 4 5 6 | $( function (){ alert( "开始" ); $.getJSON( 'http://localhost:8080/hibernate/jsonuser.action' , function (data){ alert(data); }); }); |
运行结果:
本文转自 梦朝思夕 51CTO博客,原文链接:http://blog.51cto.com/qiangmzsx/1305058
转载地址:http://qipfo.baihongyu.com/