JAVA技巧:struts令牌解決重復(fù)刷新提交

字號(hào):

insert步驟。
    原來(lái)的步驟insert.jsp(form)點(diǎn)提交---->insertAction(做插入的)--->insert.jsp跳回原來(lái)頁(yè)面
    但是再次使用刷新會(huì)再次提交。
    解決方法:
    tokenAction--->insert.jsp(form)---->insertAction--->insert.jsp
    也就是在 設(shè)為首頁(yè) 提交前先進(jìn)入一個(gè)action,此action生成一個(gè)token
    tokenAction中execute代碼如下:
    public ActionForward execute(ActionMapping mapping, ActionForm form,
    HttpServletRequest request, HttpServletResponse response) {
    saveToken(request);//生成一個(gè)TOKEN return mapping.findForward("insert"); }
    在insertAction中的execute寫(xiě)如下代碼:
    protected ActionForward execute(ActionMapping mapping, ActionForm form,
    HttpServletRequest request, HttpServletResponse response)
    throws Exception {
    ActionMessages errors=new ActionMessages();
    if(!isTokenValid(request)){
    errors.add(ActionMessages.GLOBAL_MESSAGE,new ActionMessage("error.invalid.token"));
    saveToken(request);
    return mapping.findForward("insert");
    }
    else{
    resetToken(request);
    saveToken(request);
    }
    /**insert**/
    插入的方法
    /**end**/
    return mapping.findForward("insert");
    }
    
    注意:insert.jsp中的form必須為html:form,另外html:form 沒(méi)有id屬性,取代的是styleId 。