这篇我将介绍如何使用Struts2的struts2-json-plugin.jar插件返回JSON数据。

一、其中主要步骤有:

1.将struts2-json-plugin.jar插件拷贝到项目的"/WEB-INF/lib"文件夹下;

2.编写Action类文件;

3.在struts.xml文件中配置这个Action,这个Action所在的"<package.../>"必须继承”json-default“, Action 的 Result  类型为  json ,即  type="json" ,而且不对应任何视图资源。

二、示例代码:

Action类文件:

package com.example.action;

import java.util.ArrayList;

import com.opensymphony.xwork2.ActionSupport;

public class StrutsJsonAction extends ActionSupport {
private int i=123;
private String str="str";
private int[] array={1,2,3};
private ArrayList<String> list; public int getI() {
return i;
}
public void setI(int i) {
this.i = i;
}
public String getStr() {
return str;
}
public void setStr(String str) {
this.str = str;
}
public int[] getArray() {
return array;
}
public void setArray(int[] array) {
this.array = array;
}
public ArrayList<String> getList() {
return list;
}
public void setList(ArrayList<String> list) {
this.list = list;
}
public String execute(){
list = new ArrayList<String>();
list.add("red");
list.add("green");
list.add("yellow");
return SUCCESS;
}
}

struts.xml文件:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>
<package name="json-example" namespace="/" extends="json-default">
<action name="JSONExample" class="com.example.action.StrutsJsonAction">
<result name="success" type="json"/>
</action>
</package>
</struts>

然后在浏览器中访问"   http://localhost:8080/Struts2_JSON/JSONExample  ",显示结果如图:

JSON 插件会将所有可序列化  Action  属性序列化为 JSON  数据。

三、配置常用JSON类型的Result

浏览器是否缓存JSON

<result type="json">
  <!-- 取消浏览器缓存-->
  <param name="noCache">true</param>
</result>

设置浏览器响应类型,默认为text/html

<result type="json">
  <!-- 设置服务器响应类型-->
  <param name="contentType">application/json</param>
</result>

排除值为 null 的属性

<result type="json">
<!--排除值为null的属性-->
<param name="excludeNullProperties">true</param>
</result>

只序列化指定的Action属性

<result type="json">
<!--只序列化Action内的list属性-->
<param name="root">list</param>
</result>
序列化包含的属性(逗号分隔的正则表达式列表)
<result type="json">
<!--序列化list属性-->
<param name="includeProperties">list.*</param>
</result>
<result type="json">
<!--序列化array属性,\[和\]匹配数组的[]括号,\d匹配数字,+表示一次或多次-->
<param name="includeProperties">array\[\d+\]</param>
</result>
排除不需要被序列化的属性(逗号分隔的正则表达式列表)
<result type="json">
<!--排除list属性-->
  <param name="excludeProperties"> list.* </param>
</result>

 

Struts2返回Json数据(使用Struts2插件)的更多相关文章

  1. 深入了解Struts2返回JSON数据的原理

    首先来看一下JSON官方对于"JSON"的解释: JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.易于人阅读和编写.同时也易于机器解析 ...

  2. (转)Struts2返回JSON数据的具体应用范例

    转载自 yshjava的个人博客主页 <Struts2返回JSON数据的具体应用范例> 早在我刚学Struts2之初的时候,就想写一篇文章来阐述Struts2如何返回JSON数据的原理和具 ...

  3. Struts2返回JSON数据的具体应用范例

    早在我刚学Struts2之初的时候,就想写一篇文章来阐述Struts2如何返回JSON数据的原理和具体应用了,但苦于一直忙于工作难以抽身,渐渐的也淡忘了此事.直到前两天有同事在工作中遇到这个问题,来找 ...

  4. Struts2返回JSON数据的具体应用范…

    Struts2返回JSON数据的具体应用范例 博客分类: Struts2 Struts2JSON  早在我刚学Struts2之初的时候,就想写一篇文章来阐述Struts2如何返回JSON数据的原理和具 ...

  5. Struts2返回json数据xml中配置

    <?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE struts PUBLIC "-/ ...

  6. struts2返回json数据

    <!-- ajax注册 --> <package name="jsonstruts2" namespace="/json" extends=& ...

  7. 转:Struts2返回JSON数据的具体应用范例

    http://blog.csdn.net/jspamd/article/details/8810109 纠错: <result type="json" name=" ...

  8. Struts2返回JSON对象的方法总结

    如果是作为客户端的HTTP+JSON接口工程,没有JSP等view视图的情况下,使用Jersery框架开发绝对是第一选择.而在基于Spring3 MVC的架构下,对HTTP+JSON的返回类型也有很好 ...

  9. (转)Struts2返回JSON对象的方法总结

    转自:http://kingxss.iteye.com/blog/1622455 如果是作为客户端的HTTP+JSON接口工程,没有JSP等view视图的情况下,使用Jersery框架开发绝对是第一选 ...

随机推荐

  1. JS实现简单倒计时

    /*倒计时*/ lcf.downTime = function (endTime,obj,callback){ /*基本判断*/ if(!endTime || typeof endTime !== & ...

  2. (转)js prototype 详解

    转载自:http://blog.csdn.net/chaojie2009/article/details/6719353(也是转载的.鄙视一下此人转载不著名出处.) 注意:必须带着怀疑的态度去看这篇文 ...

  3. UVA 1617 Laptop

    题意: 有n条长度为1的线段,确定他们的起点,必须是整数,使得第i条线段在[ri,di]之间.最后输出空隙的最小值 分析: 原始数据排序,排序的规则是先按照右端点排序,右端点相同的情况下,再按照左端点 ...

  4. UVA 1153 KEEP THE CUSTOMER SATISFIED

    题意: 钢铁公司有N个客户的订单,每个订单有一个产量q(生产时间刚好也等于q)和订单完成截止时间.公司要求完成尽量多的订单. 分析: 先按截止时间d排序,然后维护一个已经选好的订单的优先队列,如果当前 ...

  5. aspx后台生成json对象

    json对象应用很广,有时,我们要把一些数据转化为json对象,就需要用到以下方法了. 1.使用Newtonsoft.Json.DLL (推荐使用) 下载地址:http://files.cnblogs ...

  6. dom操作例子

    <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <m ...

  7. 跳跃表 C#

               虽然avl树和红黑树在数据搜索和排序方面都是有效的数据结构,但是都显得特别麻烦,跳跃表就显得特别简单,虽然简单 不影响他性能,在平均情况下,其插入.删除.查找数据时间复杂度都是O ...

  8. poj3461Oulipo

    Description The French author Georges Perec (1936–1982) once wrote a book, La disparition, without t ...

  9. zoj1183 Scheduling Lectures

    这道题题意不想说了,跑了640ms,感觉水过去了,应该能通过单调队列优化,很长时间没碰已经不知道怎么写了,就说说现在的写法吧. 状态定义很关键:dp[i][j]把前j个topic放在前i堂课. 因为这 ...

  10. Ubuntu package managerment tools

    Visual demostration References Understanding differences between dpkg and apt-get/aptitude tools. A ...