Search code examples
javajspstruts2ognldmi

How to handle multiple actions in a single form in Struts 2


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?


Solution

  • 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.