Struts中使用json需要在struts基础上加上几个包:(这里只列出了重要的几个)
commons-lang-2.4.jar;
jsonplugin-0[1].32.jar;
下面是配置文件中的几个常用的参数:
root参数用于指定要序列化的根对象,如果省去这一配置,表示要序列化action中的所有属性
ignoreHierarchy 为false时表示要序列化根对象的所有基类
excludeProperties表示排除的序列化的属性
includeProperties表示哪些属性被序列化
struts中action的配置:
<!-- jsonplugin的使用配置 --> <!-- package要继承json-default 以加载json插件 --> <action name="jsonAct" class="cn.enjoylife.prac.action.JsonAction"> <result type="json"> <!-- root参数用于指定要序列化的根对象,如果省去这一配置,表示要序列化action中的所有属性 --> <param name="root">map</param> <!-- ignoreHierarchy 为false时表示要序列化根对象的所有基类 --> <param name="ignoreHierarchy">false</param> <!-- 排除hello属性,使其不被序列化 --> <param name="excludeProperties">hello</param> </result> </action>
excludeProperties和includeProperties可以使用正则表达式,例如有一个persons的对象数组。
1、如果返回的对象是一个对象数组的Json数据。
<param name="includeProperties">
persons\.name,persons\.age,persons\.gender
</param>
2、如果只返回对象数组中第一个对象的数据。
<param name="includeProperties">persons\[\d+\]\.persons1 </param>
3,如果返回一个list<object>,可以看看如下例子:
这是前台获取的数据:
这是action中的方法:
![](https://i-blog.csdnimg.cn/blog_migrate/4b769af8a2cf71648d08bcb738eb76fc.png)
附加一种方法:(这种方法和servlet使用json相似)
前提需要导fastjson.jar包
配置文件中的:
jsp中的:
更多详情: http://www.open-open.com/lib/view/open1325518231062.html