Struts2仅将特定变量对象用于JSON结果(并非所有Action变量)

时间:2018-08-21 18:42:10

标签: json struts2

假设我的Struts映射返回JSON字符串,

y yu 2

我的Action类具有多个可以被“解释”为潜在结果的变量。

No

执行以下操作时,我会设置所需的特定变量,但是Struts2似乎会在Action下返回所有合适的变量:

Yes

返回成功是否错误?我只想要在此方法中设置的JSON变量。现在,它将返回所有3个变量,

    <action name="retrieveJson" method="retrieveJson" class="myapp.WebServiceAction">
        <result type="json">
            <param name="contentType">text/plain</param>
        </result>       
    </action>

预期:

public class WebServiceAction {
   private List<PublicationRecord> publicationRecords; // getters+setters
   private List<ReviewRecord> reviewRecords; // getters+setters
   private List<CustomRecord> customRecords; // getters+setters
}

1 个答案:

答案 0 :(得分:1)

为此,您可以使用2个属性。 excludeNullPropertiesincludeProperties仅用于序列化所需的字段。另外,includeProperties允许使用正则表达式,以防您不想序列化完整的对象内容。

<result type="json">
  <param name="includeProperties">
    ^entries\[\d+\].clientNumber,
    ^entries\[\d+\].scheduleNumber,
    ^entries\[\d+\].createUserId
  </param>
</result>

Here是官方文档。