为了方便ajax调用传输数据,在struts2中加入的json插件用来做对象的序列化和反序列化,json插件的下载地址
http://code.google.com/p/jsonplugin/
1. 下载json插件包,将jar包拷贝到WEB-INF/lib目录
注:struts2的json插件有两个版本0.32和0.34,我用的struts2的版本是2.0.11,在加入0.34版本json插件时启动发生异常,提示找不到相关方法,后来就换成了低版本的0.32一切OK,仔细查看文档后发现struts2的2.0.*版本的对应插件的0.32版本,struts2.1.*版本对应0.34版本
2.json插件执行原理时序图
点击查看原图
3.将struts.xml里面的
<package name="default" extends="struts-default">
改为
<package name="default" extends="json-default">
4.Action中的配置
<action name="testAction" class="com.json.action.TestAction" method="testMethod">
<interceptor-ref name="json" /><!--处理以JSON文本提交的请求-->
<result type="json" /> <!--将action的bean属性以json字符串返回浏览器-->
</action>
注:根据需要选择interceptor和result配置
5. 你会发现前台返回的json字符串,是把action中的所有属性全部转化为json字符串返回给浏览器了,但是我有时候需要根据实际情况返回部分结果,如何对json的结果进行定制输出呢?result提供了一些参数替你解决这个问题
5.1. root参数:从返回结果中根据ognl表达式取出你需要输出的结果
如:
action类
public class BaseAction extends ActionSupport implements {
private Person person = null;
...
}
bean类
public class Person {
private String name;
private int age;
...
}
我们只要输出person对象的name属性值,配置如下
<result type="json">
<param name="root">person.name</param>
</result>
5.2. excludeNullProperties 参数:表示是否去掉空值, 默认值是false,如果设置为true会自动将为空的值过滤,只输出不为空的值。
<result type="json">
<param name="excludeNullProperties">true</param>
</result>
5.3. ignoreHierarchy 参数:表示是否忽略等级,也就是继承关系,比如:TestAction继承于BaseAction,那么TestAction中返回的json字符串默认是不会包含父类BaseAction的属性值,ignoreHierarchy值默认为true,设置为false后会将父类和子类的属性一起返回。
<result type="json">
<param name="ignoreHierarchy">false</param>
</result>
5.4. includeProperties 参数:输出结果中需要包含的属性值,这里正则表达式和属性名匹配,可以用“,”分割填充多个正则表达式。
如:输出person的所有属性
<result type="json">
<param name="includeProperties">person.*, person\.name</param>
</result>
5.5. excludeProperties 参数:输出结果需要剔除的属性值,也支持正则表达式匹配属性名,可以用“,”分割填充多个正则表达式,类同5.4.
分享到:
相关推荐
为了方便ajax调用传输数据,在struts2中加入的json插件用来做对象的序列化和反序列化,json插件的下载地址 http://code.google.com/p/jsonplugin/ 1. 下载json插件包,将jar包拷贝到WEB-INF/lib目录 注:struts2...
NULL 博文链接:https://deony2jacob1314.iteye.com/blog/1826725
struts2-json-plugin,Struts JSON插件
struts2json ajax Demo struts2json ajax Demo
该资源是使用struts2框架进行操作,返回json格式数据,前台通过ajax提交内容。
Struts2和JSON交互的例子,非常容易理解,Struts2和JSON交互的例子,非常容易理解。
struts2 json
Struts2配置详解,Struts2配置详解,Struts2配置详解,Struts2配置详解,Struts2配置详解
struts 2.0 与 2.1 对应需要的json插件
struts2整合json的插件struts2-json-plugin源码,不是jar包
struts2.1.8 json 插件,官网上本来是有的,放在这里为大家方便下载。
struts2 json plugin jar包
两个版本的插件,找了很久的哦!需要的速度下载!
一个运用Extjs,Struts2, json,...Use Extjs,Struts2, JSON,iterator Technology Demo. Use Extjs,Struts2, JSON,iterator technology, Data to Extjs from the background layer. Comment more, for your reference.
这可以实现struts和json的整合 <struts> <package name="demo" extends="json-default"> <result type="json"/> </action> </struts>
Struts2+Json+Android简单实现,StrutsJson为服务端代码,JSONDemo为Android端代码
struts2的convention配置详解 很全
Struts2.0的各种配置详解Struts2.0的各种配置详解Struts2.0的各种配置详解Struts2.0的各种配置详解Struts2.0的各种配置详解Struts2.0的各种配置详解Struts2.0的各种配置详解
struts2的json插件实例