如何使用struts 2 json插件在json响应中包含父类字段

时间:2012-04-10 05:09:13

标签: json struts2

我有以下实施

public abstract class BaseAcion extends ActionSupport {
    private String result;
    private String message;

    //getters, setters
}

public class MyAction extends BaseAction {
    private String myFirstField;
    private String mySecondField;

    public String execute() {
         ...
         myFirstField = "someValue";
         mySecondField = "someOtherValue";
         ...
         result = SUCCESS;
         message = "Some message here";
         ...
         return result;
    }

    //methods, getters, setters
}

我使用过struts2-json插件,动作映射是

<package name="my-package" namespace="/" extends="json-default" >
    <action name="myAction" class="MyAction">
        <result type="json"></result>
    </action> 
</package>

我收到的回复是这样的。

{
    "myFirstField":"someValue",
    "mySecondField":"someOtherValue"
}

我也希望得到“结果”和“消息”字段。

如何在json响应中包含BaseAction字段?

1 个答案:

答案 0 :(得分:11)

默认情况下,在“root”对象的基类上定义的属性不会被序列化,以序列化所有基类中的属性(最多为Object),在JSON结果中将“ignoreHierarchy”设置为false:

这样的东西
<result type="json">
  <param name="ignoreHierarchy">false</param>
</result>

有关详细信息,请参阅JSON插件文档