Struts2:多个提交按钮

时间:2014-02-06 10:56:45

标签: java xml jsp struts2 form-submit

我想在我的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示例,那将会很棒。

2 个答案:

答案 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