仅转移struts'json中类的一部分属性

时间:2011-08-03 05:55:18

标签: json struts2 actioncontroller

抱歉,我真的不知道如何总结这个问题的标题。所以,标题可能不清楚。

我有一个执行某些业务逻辑的动作类。

在Action Class中:

class ActionClass extends ActionSupport{
      private Merchandise merchandise;// I want to transfer it to the client
      //setter and getter

}
商品类中的

class Merchandise{
    private String name; // I want to transfer it
    private String price; //I don't want to transfer it
    private String description;//I don't want to transfer it
    //setter and getter
}

现在,我需要将 ActionClass 中的商品属性转移到客户端。

但是,在商品属性中,我只想传输 name 属性,同时禁止其他两个属性。

那么如何抑制商品类中其他两个属性(价格和描述)的转移?

3 个答案:

答案 0 :(得分:5)

尝试类似:

<!-- Result fragment -->
<result type="json">
  <param name="root">merchandise</param>
  <param name="excludeProperties">price,description</param>
</result>

请参阅http://struts.apache.org/2.2.3/docs/json-plugin.html

上的完整文档,其他选项和示例

答案 1 :(得分:0)

最简单的方法是在操作类中创建一个数据传输对象,该对象仅包含要发送到客户端的字段并将其作为根对象

答案 2 :(得分:0)

@nmc回答是正确的另一种方式,你可以尝试:

<result type="json">
  <param name="root">merchandise</param>
  <param name="includeProperties">name</param>
</result>

或者

    <result type="json">
     <param name="includeProperties">
       merchandise.name
     </param>
     <param name="root">
       #action
     </param>
    </result>