防止表单重复提交的原理与struts的兑现

防止表单重复提交的原理与struts的实现
第一个action:
public class RegUserUI extends Action {

@Override
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
saveToken(request);//生成Token
// return new ActionForward("/WEB-INF/user/reUser.jsp");
return mapping.findForward("success");
}

}

第二个action:
public class RegUser extends Action {
@Override
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {

UserForm userForm = (UserForm)form;
ActionMessages errors = new ActionMessages();
if(userForm.getUser().getUsername().trim().equals("wxx")) {
errors.add("username", new ActionMessage("error.username.wrong",getResources(request).getMessage(getLocale(request), "prompt.name")));//
}
// if Token disable
if(!isTokenValid(request)){
errors.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage("重复提交",false));
}
if(!errors.isEmpty()) {
saveErrors(request, errors);
return mapping.getInputForward();
}
//clear Token
resetToken(request); return mapping.findForward("success");
}
}

画面:<html:errors/>