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