走一下action流程再到要防止重复提交的页面
处理提交页面的action
public class PrepareTokenAction extends Action {
public ActionForward execute(
ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws Exception {
// Generate a unique token that will be
// check when the form is submitted
saveToken(request);
// Forward to the form
return mapping.findForward("success");
}
}
处理提交页面的action
public class ProcessTokenAction extends Action {
public ActionForward execute(
ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws Exception {
// If user pressed 'Cancel' button,
// return to home page
if (isCancelled(request)) {
return mapping.findForward("home");
}
ActionErrors errors = new ActionErrors();
// Prevent unintentional duplication submissions by checking
// that we have not received this token previously
if (!isTokenValid(request)) {
errors.add(
ActionMessages.GLOBAL_MESSAGE,
new ActionMessage("errors.token"));
}
resetToken(request);
// Report any errors we have discovered back to the original form
if (!errors.isEmpty()) {
saveErrors(request, errors);
saveToken(request);
return (mapping.getInputForward());
}
// Forward to result page
return mapping.findForward("success");
}
}