我想在我的jsp中有2个提交按钮,所以我找到了这个教程:http://struts.apache.org/release/2.3.x/docs/multiple-submit-buttons.html 我想用MyBaseAction类开发Nyong Nyong的解决方案,由MySubmitAction和MyClearAction类扩展。但我无法让它发挥作用。 我不确定jsp将如何,这是在示例中:
<s:form method="post" action="mySubmitAction">
<s:submit value="Submit"/>
<s:submit value="Clear" action="myClearAction"/>
</form>
但我想这是前面的例子。 我对struts.xml也不太确定,我是否需要设置一些特定的常量值或其他东西?
如果有人可以提供完整的jsp和struts.xml示例,那将会很棒。
答案 0 :(得分:13)
如果您在版本较新而不是2.3.15.2中使用struts,则必须将此常量添加到struts.xml以启用action:
前缀:
<constant name="struts.mapper.action.prefix.enabled" value="true" />
因为它默认已被禁用。
详细了解安全公告S2-018。
答案 1 :(得分:1)
您需要将操作的“名称”映射到您创建的实际Action类。如果您按照示例操作并拥有struts.xml文件,如:
<action name="mySubmitAction" class="MySubmitAction">
<result>submit.jsp</result>
</action>
<action name="myClearAction" class="MyClearAction">
<result>submit.jsp</result>
</action>
当您点击<s:submit value="Submit"/>
生成的输入时,Struts2将在execute
中执行您的MySubmitAction
方法。单击<s:submit value="Clear" action="myClearAction"/>
生成的输入时,struts2应该覆盖s:form
标记指定的默认操作(我尚未对其进行测试)并将在您的execute
方法中执行MyClearAction
。