如何在WILDCARD动作映射中以单一形式处理多个动作?

时间:2014-05-06 10:09:18

标签: java jsp struts2 wildcard-mapping dmi

根据这个解决方案Struts2 handle multiple actions...我知道Struts2 DMI可以轻松处理单个形式的多个acitons。

最近,Struts2关闭了DMI机制以解决安全问题。现在,我们使用WILDCARD MAPPINGS来映射struts.xml

中的所有操作

示例:

<action name="*/*" class="action.{1}Action" method="{2}">
    ...
</action>

在WILDARD MAPPINGS中,处理以单一形式映射多个动作/方法有一点问题。

<s:form action="actionA/method2" theme="simple" >
    <s:submit value="lastStep"  action="actionA/method1"/>
    <s:submit value="nextStep" />
</s:form>

如何解决此问题?

1 个答案:

答案 0 :(得分:0)

在struts2中,即使DMI关闭,仍然可以使用特殊参数action:。要在JSP中使用此参数,您需要配置

struts.xml文件中:

<constant name="struts.mapper.action.prefix.enabled" value="true" />

当过滤器尝试从过滤后的网址获取操作映射时,操作映射器会处理特殊参数,并且当您使用action标记的submit属性时,此参数会添加到表单中。