2014-02-06 123 views
3

我想在我的jsp中有2个提交按钮,所以我找到了这个教程:http://struts.apache.org/release/2.3.x/docs/multiple-submit-buttons.html 我想用MyBaseAction类开发Nyong Nyong的解决方案,通过MySubmitAction和MyClearAction类进行扩展。但我无法得到它的工作。 我不知道jsp中怎么会,这是在例如:Struts2:多个提交按钮

<s:form method="post" action="mySubmitAction"> 
    <s:submit value="Submit"/> 
    <s:submit value="Clear" action="myClearAction"/> 
</form> 

但我想,它的简称前面的例子。 我不太清楚struts.xml,我需要设置一些特定的常量值或其他的东西吗?

如果有人能够提供完整的jsp和struts.xml示例,那将会很棒。

回答

11

如果您使用的支柱在版本更新 2.3.15.2,你必须添加此常量的struts.xml使action:前缀:

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

,因为它已被禁用默认。

阅读更多关于安全公告S2-018

+1

我失去了一天,你是我的英雄! :D – Accollativo

+0

很高兴帮助;) –

1

您需要将操作的“名称”映射到您创建的实际操作类。如果效仿,并有类似的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的产生将在您的MySubmitAction执行你execute方法的输入。当你点击由<s:submit value="Clear" action="myClearAction"/>生成的输入时,struts2应该覆盖s:form标记(我没有测试过)指定的默认操作,并将在您的MyClearAction中执行execute方法。

+0

是的,我知道。这是指南中的内容。但我尝试过,并没有工作。 jsp如何? 我需要在struts.xml中添加一些常数值或其他内容 – Accollativo

+0

你是什么意思“不起作用”?有什么异常?第二个按钮执行'mySubmitAction'? – orique