根据这个解决方案,Struts2处理多个动作…我知道Struts2 DMI可以轻松地以单一形式处理多个动作。
最近,Struts2因为安全问题关闭了DMI机制。现在,我们使用通配符映射来映射struts.xml
例子:
<action name="*/*" class="action.{1}Action" method="{2}">
...
</action>
在通配符映射中,处理以单一形式映射多个动作/方法有一个小问题。
<s:form action="actionA/method2" theme="simple" >
<s:submit value="lastStep" action="actionA/method1"/>
<s:submit value="nextStep" />
</s:form>
如何解决这个问题?
在Struts2中,即使DMI关闭,仍然可以使用特殊参数action:
。要在JSP中使用此参数,您需要配置
在你的struts.xml
文件:
<constant name="struts.mapper.action.prefix.enabled" value="true" />
当过滤器试图从过滤的URL中获取动作映射时,特殊参数由动作映射器处理,当您使用submit
标记的action
属性时,该参数被添加到表单中。