struts2返回json数据
如果要让Action返回JSON类型,需要在在package的extends属性修改为json-default,一旦为Action指定了该结果处理类型,JSON插件就会自动将Action里的数据序列化成JSON格式的数据, 并返回给客户端物理视图的JavaScript。
1,在返回的json对象必须在action中有get方法;
2,使用<param name="includeProperties">,后跟的对象,数组,集合或者属性在action中有get方法
3,如果使用<param name="includeProperties">后跟数组或者集合,必须指定(.属性)或者(.对象),否则得到数据可能是空[](因为struts好像不识别这种json格式);也不能跟* 号,这个只是获取到个数,但每个都是[]空;
如果action的属性很多,我们只想要从Action一部分或者一类属性到页面, 这个时候通过result节点后面添加出参数includeProperties或excludeProperties即可。includeProperties指定要包含的属性,而excludeProperties是排除属性,这两个属性都可以通过正则表达式来指定属性。 如:
<struts> <package name="default" extends="json-default"> <action name="person" class="com.person.PersonAction" method="view"> <result type="json"> <param name="includeProperties"> person\.name,persoon\.age,person\.gender </param>> </result> </action> </package> </struts>
但是如果返回的对象是一个数组格式的Json数据。比如peson Bean中有对象persion1...person9,而我只要person1的json数据,则可以用如下的正则表达式。
<struts> <constant name="struts.objectFactory" value="spring"/> <include file="struts-admin.xml"></include> <package name="default" extends="json-default"> <action name="person" class="com.person.PersonAction" method="view"> <result type="json"> <param name="includeProperties"> person\[\d+\]\.person1 </param>> </result> </action> </package> </struts>
excludeProperties拦截器的用法与此类同,如果拦截的仅仅是一个对象,如果拦截掉person Bean的整个对象,使用如下配置
<struts> <constant name="struts.objectFactory" value="spring"/> <include file="struts-admin.xml"></include> <package name="default" extends="json-default"> <action name="person" class="com.person.PersonAction" method="view"> <result type="json"> <param name="excludeProperties"> person </param>> </result> </action> </package> </struts>
------------------------下面的测试不成功------------------------------------
<action name="seljsons" class="tbaction" method="getJsonGrids">
<result type="json">
</result>
</action>
没有找到如何通过struts传送json
++++++++++++++++++++++++++++++++++++++++++++++++++++++
<action name="seljsons" class="tbaction" method="getJsonGrids">
<result type="json">
<param name="root">stjson</param>
</result>
</action>
后台使用字符串的结果是:
"[{\"currentpage\":2,\"size\":10,\"totalpage\":1,\"totlecount\":1},{\"currentpage\":22,\"size\":10,\"totalpage\":3,\"totlecount\":21},{\"currentpage\":32,\"size\":10,\"totalpage\":4,\"totlecount\":31}]"
中间有反斜杠(转义)
+++++++++++++++++++++++++++++++++++++++++++++++++++++++
------------------------------------------------------------------------------
本文出自 “东方小阁” 博客,请务必保留此出处http://lailai.blog.51cto.com/3362373/1559030
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。