How to handle multiple actions in a single form in Struts 2
10,359
Solution 1
In the struts.xml
the action is mapped via the action
tag
<action name="userAction" class="...
the submit
buttons should include method
attribute to call corresponding methods of the action
<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" />
Note: To map a method
attribute you should have DMI turned on.
Solution 2
In order to use method
attribute of the <s:submit>
tag DynamicMethodInvocation
must be enabled. Another solution is to use action
attribute.
In 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>
In struts.xml:
<action name="print" class="...">
<result>...</result>
</action>
<action name="export" class="...">
<result>...</result>
</action>
<action name="save" class="...">
<result>...</result>
</action>
Author by
gmeka
Updated on June 08, 2022Comments
-
gmeka almost 2 years
I have a form contains three buttons
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>
How can I map this in
struts.xml
?