我知道Struts2 JSON插件将整个Action
类转换为JSON格式,并提供root
param
我们可以让它只将一个param
转换为JSON格式。
如果我想从我的动作类的5个成员中删除,只有2或3个成员转换为JSON,该怎么办? 这可能吗?
答案 0 :(得分:2)
您可以使用includeProperties
或excludeProperties
。
IncludeProperties
在我的案例中并没有按预期工作因此,我更喜欢使用exludeProperties
。
动作配置看起来像
<action name="camp/ls" class="actions.MyAction">
<result type="json">
<param name="excludeProperties">
dataIsp,deviceBlacklist,deviceOs,deviceWhitelist,exchanges
</param>
</result>
</action>
答案 1 :(得分:1)
最简单的方法是从您不希望JSON化的属性中删除 getters 。
仅使用 getter 的非瞬态属性。
答案 2 :(得分:0)
在这种情况下,您不应使用root
参数,而应使用includeProperties
参数。有关参考文档,请参阅this链接。
可以将以逗号分隔的正则表达式列表传递给 JSON结果限制将序列化哪些属性。只要 将包含与任何这些正则表达式匹配的属性 在&gt;序列化输出。
注意:
排除属性表达式优先于include属性 表达式。也就是说,如果使用include和exclude属性 表达式在相同的结果上,include属性表达式不会 如果排除排除属性表达式与a匹配,则应用 物业第一。
<!-- Result fragment --> <result type="json"> <param name="includeProperties"> ^entries\[\d+\]\.clientNumber, ^entries\[\d+\]\.scheduleNumber, ^entries\[\d+\]\.createUserId </param> </result>