想在struts中返回一个对象的json数据,通过定义
复制代码代码如下:
< action name="getUserByName" method="getUserByName" >
< result name="success" type="json" >
userInfo
< /result >
< /action >
结果返回的是整个action类的所有成员变量的json数据。要想返回userInfo对象的数据,需要将返回参数定义为root对象
复制代码代码如下:
< action name="getUserByName" method="getUserByName" >
< result name="success" type="json" >
< param name="root" >
userInfo
< /param >
< /result >
< /action >
下面是返回各种json数据的定义
复制代码代码如下:
< !-- 封装所有的get开头的方法 -- >
< result type="json" name="user" >
< /result >
< !-- 只包含user.id属性 -- >
< result type="json" name="user" >
< param name="includeProperties" >
user/.id
< /param >
< /result >
< !-- 返回user的JSON List列表,其中userInfosList是action中的一个List类型的属性,userInfosList /[/d+/]/. userName表示,userInfosList中存储的对象0..end的userName属性(list中存储的对象必须有userName属性)
-- >
< result name="success" type="json" >
< param name="includeProperties" >
userInfosList/[/d+/]/.userName,userInfosList/[/d+/]/.password
< /param >
< /result >
< !-- 不包含user属性 -- >
< result type="json" name="list" >
< param name="excludeProperties" >
user
< /param >
< /result >
< !-- 根对象只包含user -- >
< result type="json" >
< param name="root" >
user
< /param >
< /result >
< !-- "root"对象中父类的field(属性)不会(会?) 默认存放到 JSON数据中,如果不想这样做,需要在配置时指定 ignoreHierarchy 为 false: -- >
< result type="json" >
< param name="ignoreHierarchy" >false< /param >
< /result >