1.引入jar
ezmorph-1.0.6.jar
json-lib-2.3-jdk15.jar
struts2-json-plugin-2.3.14.jar
2.编写struts.xml
2.1 <package name="common" extends="struts-default,json-default"></package>
2.2 demo如下:
<action name="AjaxCustomerInfoAction_*" class="CustomerInfoAction" method="{1}">
<result name="detile" type="json">
<param name="includeProperties">cijson.*</param>
</result>
<result name="toUpdateCostomerInfoData" type="json">
<param name="includeProperties">natures.*</param>
</result>
</action>
解释:includeProperties为Action中的所有带有get**对应的属性
特别注意:如果出现ajax访问而回调函数中没有数值时或者不是预期的结果,可能是栈顶元素在作怪,此时只需要清除值栈的栈顶元素即可
在执行的方法中,在return前面假如下面的这句:
ActionContext.getContext().getValueStack().pop();
3. 其他属性介绍:
<!-- 这里指定将被Struts2序列化的属性,该属性在action中必须有对应的getter方法 --> |
03 | <!-- 默认将会序列所有有返回值的getter方法的值,而无论该方法是否有对应属性 --> |
04 | < param name = "root" >dataMap</ param > |
05 | <!-- 指定是否序列化空的属性 --> |
06 | < param name = "excludeNullProperties" >true</ param > |
07 | <!-- 这里指定将序列化dataMap中的那些属性 --> |
08 | < param name = "includeProperties" > |
09 | userList.* |
10 | </ param > |
11 | <!-- 这里指定将要从dataMap中排除那些属性,这些排除的属性将不被序列化,一半不与上边的参数配置同时出现 --> |
12 | < param name = "excludeProperties" > |
13 | SUCCESS |
14 | </ param > |