这一点跟传统的Servlet的处理方式基本上一模一样,代码如下
01 |
public void doAction() throws IOException{
|
02 |
HttpServletResponse response=ServletActionContext.getResponse();
|
03 |
//以下代码从JSON.java中拷过来的
|
04 |
response.setContentType("text/html");
|
05 |
PrintWriter out;
|
06 |
out = response.getWriter();
|
07 |
//将要被返回到客户端的对象
|
08 |
User user=new User();
|
09 |
user.setId("123");
|
10 |
user.setName("JSONActionGeneral");
|
11 |
user.setPassword("JSON");
|
12 |
user.setSay("Hello , i am a action to print a json!");
|
13 |
JSONObject json=new JSONObject();
|
14 |
json.accumulate("success", true);
|
15 |
json.accumulate("user", user);
|
16 |
out.println(json.toString());
|
17 |
// 因为JSON数据在传递过程中是以普通字符串形式传递的,所以我们也可以手动拼接符合JSON语法规范的字符串输出到客户端 |
18 |
// 以下这两句的作用与38-46行代码的作用是一样的,将向客户端返回一个User对象,和一个success字段 |
19 |
// String jsonString="{\"user\":{\"id\":\"123\",\"name\":\"JSONActionGeneral\",\"say\":\"Hello , i am a action to print a json!\",\"password\":\"JSON\"},\"success\":true}"; |
20 |
// out.println(jsonString); |
21 |
out.flush();
|
22 |
out.close();
|
23 |
}
|
struts.xml中的配置:
1 |
<package name="default" extends="struts-default" namespace="/">
|
2 |
<action name="testJSONFromActionByGeneral"class="cn.ysh.studio.struts2.json.demo.action.UserAction" method="doAction">
|
3 |
</action>
|
4 |
</package>
|