Struts2:多个提交按钮
Posted
技术标签:
【中文标题】Struts2:多个提交按钮【英文标题】:Struts2: multiple submit button 【发布时间】:2014-03-03 06:43:08 【问题描述】:我想在我的 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 示例,那就太好了。
【问题讨论】:
【参考方案1】:如果您在 较新 2.3.15.2 的版本中使用 struts,则必须将此常量添加到 struts.xml 以启用 action:
前缀:
<constant name="struts.mapper.action.prefix.enabled" value="true" />
因为它已默认禁用。
阅读更多安全公告S2-018。
【讨论】:
我输了一天,你是我的英雄! :D【参考方案2】:您需要将动作的“名称”映射到您创建的实际动作类。如果您遵循示例并拥有类似以下的 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
方法。
【讨论】:
是的,我知道。这是指南中所写的内容。但我试过了,还是不行。 jsp会怎样? “不起作用”是什么意思?有什么例外吗?第二个按钮执行mySubmitAction
?以上是关于Struts2:多个提交按钮的主要内容,如果未能解决你的问题,请参考以下文章
如何检测在单个 Action 类中的多个提交按钮场景中单击的提交按钮? [复制]