一直以来都是使用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