注意: 在使用strtus-json-plugin序列化对象属性,配置result标签下includeProperties属性时使用 对象名.*或则指定属性名的方式,不能光写对象属性名。
问题:
action中有两个属性: String result 和 List类型的users。通过struts-json-plugin将这两个属性序列化成json字符串并返回到客户端,配置如下:
<action name = "" class = ""> <result name = "success" type = "json"> <param name = "includeProperties"> result , users </param> </result> </action>
通过上面的配置,返回到客户端页面仅仅能看到result的值,users显示为{},空。
修改配置:
<action name = "" class = ""> <result name = "success" type = "json"> <param name = "includeProperties"> result , users\[\d+\] </param> </result> </action>
客户端页面可以正常获取result的值,但是users的值显示为{{},{}....}。显然,没有正确获取到值。
修改配置:
<action name = "" class = ""> <result name = "success" type = "json"> <param name = "includeProperties"> result , users\[\d+\].* </param> </result> </action>
可以正常获取result和users的值。
也可以只序列化User对象中的某些属性,例如只序列化name:
users\[\d+\].name