【问题标题】:Struts2: multiple submit buttonStruts2:多个提交按钮
【发布时间】: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 示例,那就太好了。

【问题讨论】:

    标签: java xml jsp struts2 form-submit


    【解决方案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>
    

    当您单击&lt;s:submit value="Submit"/&gt; 生成的输入时,Struts2 将在您的MySubmitAction 中执行您的execute 方法。当您单击&lt;s:submit value="Clear" action="myClearAction"/&gt; 生成的输入时,struts2 应该会覆盖s:form 标签指定的默认操作(我还没有测试过),并将在您的MyClearAction 中执行execute 方法。

    【讨论】:

    • 是的,我知道。这是指南中所写的内容。但我试过了,还是不行。 jsp会怎样?
      是否需要在 struts.xml 中添加一些常量值或其他内容
    • “不起作用”是什么意思?有什么例外吗?第二个按钮执行mySubmitAction?
    猜你喜欢
    • 1970-01-01
    • 2013-06-30
    • 2012-12-07
    • 2014-05-14
    • 2013-04-16
    • 1970-01-01
    • 1970-01-01
    • 2016-06-22
    • 1970-01-01
    相关资源
    最近更新 更多