I got a simple form validation and submission that works great
Here is my struts.xml :
<action name="register" class="registerAction">
<interceptor-ref name="defaultWithoutAuthenticationStack"/>
<result type="tiles" name="input">
<param name="titleKey">global.title.register</param>
<param name="location">register</param>
</result>
<result type="tiles" name="success">register.success</result>
</action>
My jsp form :
<s:form method="post" action="register.action" validate="true">
<s:textfield name="usernameRegister" id="usernameRegister" key="global.username" labelposition="left" />
<s:password name="passwordRegister" id="passwordRegister" key="global.password" labelposition="left" />
<s:password name="passwordConfirmRegister" id="passwordConfirmRegister" key="global.password.confirm" labelposition="left" />
<s:textfield name="emailRegister" id="emailRegister" key="global.email" labelposition="left" />
<s:submit key="global.register" name="submitRegister" method="goRegister"></s:submit>
</s:form>
And my submit function :
public String goRegister(){
user.setUsername(getUsernameRegister());
user.setPassword(getPasswordRegister());
user.setEmail(getEmailRegister());
userService.addUser(user);
ArrayList<String> successMessageUsername = new ArrayList<String>();
successMessageUsername.add(getUsernameRegister());
this.addActionSuccess(getText("global.register.success", successMessageUsername));
return SUCCESS;
}
Nothing fancy !
The problem is I got a windows asking for resubmit form informations when I refresh my page on success page or form page (when validation failed)
How can I prevent that ?
Thx
EDIT : I add the action messages and fields messages preservation to my question
How to preserve the actions messages and fields messages (validation) with a redirection ?
Use the post-redirect-get pattern.
On success, redirect to the “you’ve registered” page. That way if the user refreshes, they just get that same page again.