在我的struts.xml
中遵循约定来调用特定动作类的动作,如下所示:
struts.xml:
<package name="cdot.oss.cmsat.gma.struts" extends="struts-default" namespace="/">
<action name="*ConfigureTspThreshold"
class="cdot.oss.cmsat.gma.struts.ConfigureTspThresholdAction" method="{1}">
<result name="display">pages/ConfigureTspThresholdInput.jsp</result>
</action>
</package>
我通过通配符获取方法名称,ConfigureTspThresholdAction
是类名。
我使用struts2-json-plugin将数据转换为JSON。现在,对于某些操作,我想使用struts2 json插件返回JSON数据。
所以我需要使用extends json-default
和result-type json
来执行这样的操作:
<action name="*ConfigureTspThreshold" class="cdot.oss.cmsat.gma.struts.ConfigureTspThresholdAction" method="{1}">
<result type="json">
<param name="excludeProperties">
tspNameIdMap
</param>
</result>
</action>
<action name="*ConfigureTspThreshold" class="cdot.oss.cmsat.gma.struts.ConfigureTspThresholdAction"
method="{1}">
<result type="json">
<param name="excludeProperties">
thresholdParameters
</param>
</result>
</action>
具有相同结果类型json
的不同exclude-properties。
如何在约定中使用这些JSON结果类型?
由于最后两个操作具有相同的结果类型json
会发生冲突?
答案 0 :(得分:1)
我要做的是在您的操作类myexcludedProperties
然后在您的操作方法中,设置此myexcludedProperties
然后将您的操作映射更改为
<action name="*ConfigureTspThreshold" class="cdot.oss.cmsat.gma.struts.ConfigureTspThresholdAction"
method="{1}">
<result type="json">
<param name="excludeProperties">
${myexcludedProperties}
</param>
</result>
</action>
我相信${myexcludedProperties}
是正确的语法。
如果您不想对属性进行编码,则必须弄清楚如何区分请求(method="{1}"
),以便设置正确的参数。
希望这是有道理的。
答案 1 :(得分:0)
其中一个选项是在结果配置中使用动态参数。您始终可以在执行结果之前修改操作中的结果。看看this回答。