源码地址:http://download.csdn.net/detail/biboheart/6024077
在web应用开发中,请求服务器返回json的使用经常用到。今天,特地对action返回json的几种方法进行测试(方法很多)。
这种方法网上文章也比较多:使用struts.xml配置使action返回json。
不多说,直接步骤(struts2其它的配置不在这里描述了,就描述一下关系到返回json相关的代码,源码会在本人csdn下载频道中提供):
一、引入包
关键是struts2-json-plugin-2.3.14.1.jar
二、struts.xml
<package name="test" namespace="/" extends="json-default">
<action name="json" class="org.biboheart.json.action.JsonAction"
method="loadJson">
<result type="json">
<param name="root">jsonStr</param>
</result>
</action>
<action name="jsonFromMap" class="org.biboheart.json.action.JsonAction"
method="loadJsonFromMap">
<result type="json">
<param name="root">dataMap</param>
</result>
</action>
</package>
三、JsonAction.java
public class JsonAction extends ActionSupport{
private static final long serialVersionUID = 1L;
private Map<String,Object> dataMap;
private String jsonStr;
public String loadJson(){
jsonStr = "{message:\"json\"}";
return SUCCESS;
}
public String loadJsonFromMap(){
//dataMap中的数据将会被Struts2转换成JSON字符串,所以这里要先清空其中的数据
dataMap = new HashMap<String, Object>();
dataMap.put("message", "mapJson");
return SUCCESS;
}
public Map<String,Object> getDataMap() {
return dataMap;
}
public void setDataMap(Map<String,Object> dataMap) {
this.dataMap = dataMap;
}
public String getJsonStr() {
return jsonStr;
}
public void setJsonStr(String jsonStr) {
this.jsonStr = jsonStr;
}
}
四、index.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
strtus2 json插件返回json实例:<br>
<a href="json">获取普通json</a><br>
<a href="jsonFromMap">获取Map转json</a>
</body>
</html>
两个链接,分别取action中两个方法的返回json。
Struts2 action中提供了getter方法的都会被转成json。
这里所用的返回json的方法,主要都在struts.xml文件配置所得。
后面还会记录下其它取json的方法。