Question

I would like to have 2 submit button in my jsp, so I found this tutorial: http://struts.apache.org/release/2.3.x/docs/multiple-submit-buttons.html I want to develop the Nyong Nyong's solution with MyBaseAction class, extended by MySubmitAction and MyClearAction class. But I can't get it work. I'm not sure how the jsp will be, this is in the example:

<s:form method="post" action="mySubmitAction">
    <s:submit value="Submit"/>
    <s:submit value="Clear" action="myClearAction"/>
</form>

But I suppose that it's referred to the previous example. I'm not sure too about the struts.xml, do I need to set some specific constant value or other stuff?

Would be great if somebody could provide a full jsp and struts.xml example.

Was it helpful?

Solution

If you are using struts in a version newer than 2.3.15.2, you must add this constant to struts.xml to enable the action: prefix:

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

because it has been disabled by default.

Read more on Security Bullettin S2-018.

OTHER TIPS

You need to map the "names" of the actions to the actual Action classes you created. If you follow the example and have the struts.xml file like:

<action name="mySubmitAction" class="MySubmitAction">
       <result>submit.jsp</result>
</action>
<action name="myClearAction" class="MyClearAction">
       <result>submit.jsp</result>
</action>

When you click on the input generated by <s:submit value="Submit"/> Struts2 will execute your execute method in your MySubmitAction. When you click on the input generated by <s:submit value="Clear" action="myClearAction"/> struts2 is supposed to override the default action specified by the s:form tag (I haven't tested it) and will execute the execute method in your MyClearAction.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top