【问题标题】:Multiple submit buttons in Struts 2 form tagStruts 2 表单标签中的多个提交按钮
【发布时间】:2015-01-09 21:36:27
【问题描述】:

我试图将表单标签中的按钮指向与表单不同的动作/动作类,但它不起作用。我在另一个线程中读到这是由于 Struts 2 中的一个错误,应该设置 struts.mapper.action.prefix.enabled"="true",所以我这样做了,但它仍然是一样的。

我可以使用不同的动作指向表单正在使用的同一动作类的不同方法,但是当我尝试指定不同的动作类时它不起作用。

这行得通,

(jsp)

<s:form action="print">     
    <s:iterator value="itemList">
        <s:radio theme="simple" name="item" list="#{id:name}" />
    </s:iterator>

    <div id="functionButtons">
        <s:submit key="button.submit" />
        <s:submit action="cancel" key="button.cancel"/>
    </div>

</s:form>

(struts.xml)

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

                     ...

<action name="print" class="...PrintItem" method="perform" > 
    <result name="success">/successJSP.jsp</result>
</action>

<action name="cancel" class="...PrintItem" method="cancel" > 
    <result name="CANCEL" type="redirectAction">homePage</result>
</action>

(动作)

public class PrintItem extends BaseAction {

    @Override
    public String perform() throws Exception {

        doPrintLogic();
        return SUCCESS;

    }

    public String cancel(){

        return "CANCEL";

    }
}

但如果我将struts.xml 中的“取消”操作映射更改为

<action name="cancel" class="...CancelFormAction" method="perform" > 
    <result name="CANCEL" type="redirectAction">trnsfr</result>
</action>

没有

这正常吗?是否可以从已经映射到一个表单的表单中映射到不同的操作类?

【问题讨论】:

  • 您需要设置struts.mapper.action.prefix.enabled 不是因为错误,而是因为它在 S2 中的工作方式。向你的其他动作类展示你可能在那里有一些错误。控制台也有错误吗?

标签: java forms jsp struts2 action


【解决方案1】:

这是正常的,因为您只能将表单映射到由表单标签的 action 属性指定的一个动作(过去在 HTML 中)。提交按钮不会更改该映射,而是会调整动作映射器以使用不同的动作,因为启用了前缀。因此,如果您需要更改此行为,您可以动态更改表单映射或更改默认操作映射器等。但是,如果操作实例已经创建,则会出现问题。因此,您应该使用默认操作映射器。但是您的帖子struts.mapper.action.prefix.enabled"="true" 中有一个错字。启用提交按钮操作的常量是

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

或者如果你使用struts.properties

struts.mapper.action.prefix.enabled=true

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-31
    • 1970-01-01
    • 2011-04-02
    相关资源
    最近更新 更多