Struts2的处理在单一形式的多个动作(Struts2 handle multiple actio

2019-07-18 13:52发布

我有一个表单包含三个按钮print / export / save

<s:form action="/userAction">
    <s:submit type="image" value="%{'print'}" src="/print.png" />
    <s:submit type="image" value="%{'export'}" src="/export.png" />
    <s:submit type="image" value="%{'save'}" src="/save.png" />
</s:form>

我怎么能在这映射struts.xml

Answer 1:

struts.xml的动作是通过所映射的<action标签

<action name="userAction" class="...

在提交按钮应包括method属性来调用动作的相应方法

<s:submit type="image" value="%{'print'}" src="/print.png" method="print" />
<s:submit type="image" value="%{'export'}" src="/export.png" method="export" />
<s:submit type="image" value="%{'save'}" src="/save.png" method="save" />


Answer 2:

为了使用method的属性<s:submit>标签DynamicMethodInvocation必须启用。 另一种解决方案是使用action属性。

在JSP:

<s:form action="save">
    <s:submit type="image" value="%{'print'}" src="/print.png" action="print" />
    <s:submit type="image" value="%{'export'}" src="/export.png" action="export" />
    <s:submit type="image" value="%{'save'}" src="/save.png" />
</s:form>

在struts.xml中:

<action name="print" class="...">
  <result>...</result>
</action>
<action name="export" class="...">
  <result>...</result>
</action>
<action name="save" class="...">
  <result>...</result>
</action>


文章来源: Struts2 handle multiple actions in single form