Question

I am migrating a project from struts 1.3 to struts 2.0. Now I have read through various resources available on web but could not find a struts 1.3 reset() form method alternative in struts 2.0.

My action class extends ActionSupport and implements Modeldriven. I have implemented the validate method in action class and that works perfect. However, when the form has no errors and the submission is done properly, the page reloads with initial values.

I expected that I will receive a blank form. I looked for a reset() form method but could find none. Currently, I am explicitly setting all form values to blank. I don't see this as a good programming practice. Please suggest how to implement form reset() in struts 2.0.

Was it helpful?

Solution

EDIT: ok, you are working with Tiles (that I've never used), then I'll try another solution:

if you have an empty JSP tile, and after the user compiled its fields and submitted the form, you want to ALWAYS clear those fields... what about declaring only SETTERS in the Action, and not the GETTERS ?

You could only set from JSP to Action, but not read them from the JSP... then your fields will be always empty in the page, and always rewritten by setters in the Action.


If i got it, you are on JSP, you call the method saveStuff() of the Action (or of another action), then you come back to the page...

in this case, you can use a RedirectAction return type, that will strip all params from the request, and redirecting your request to the execute() method of your Action.

So, instead of

<action name="myAction" class="com.blabla.myAction">
        <result name="success">/myPage.jsp</result>
</action>

just do

<action name="myAction" class="com.blabla.myAction">
      <result name="success">/myPage.jsp</result>
      <result name="stuffSaved" type="redirectAction">
          <param name="actionName">myAction</param>
      </result>
</action>

This way you re-enter in the initial state (assuming you are not putting anything in session that is read by the JSP).

OTHER TIPS

Because your Action and Form are in the same class in Struts2, you have to implement your own reset() method to clear any data that you would like.

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