你的jsp里面用了 <html:form>标签吗要不看看代码

解决方案 »

  1.   

    我没用 <html:form>标签,必须用 <html:form>标签才能使用isTokenValid吗??
      

  2.   

    对啊要用标签 才能生成 隐藏的令牌值传给action这样才能比较
      

  3.   

    先在要加的那个页面当中执行:saveToken(request)
      

  4.   

    不过在service层可不可以使用request这样的获取页面信息的类?
      

  5.   

    真是奇怪,我把jsp页面换成html标签,提交后isTokenValid(request,true)返回的
    都是true,请大家看看:
    jsp:<html:form action="/PeixunPsw.do" method='post' focus="newpsd">
    输入新密码
    <html:text property="newpsd" size="12" maxlength="10" />
    <br>
    新密码确认
    <html:text property="againpsd" size="12" maxlength="10" />
    <br><br>
    <html:submit value="确定" style="WIDTH: 80px;HEIGHT:23px;font-size=15" />
    <html:reset value="重写" style="WIDTH: 80px;HEIGHT:23px;font-size=15" />
    </html:form>action.java:
    if (isTokenValid(request)){
    return mapping.findForward("success");
    }else{
            return mapping.findForward("fail");
    }
      

  6.   

    检查正确后,应该销毁令牌,产生新的令牌if (isTokenValid(request)){
                        //销毁产生新令牌
                        this.resetToken(request);
    return mapping.findForward("success");
    }else{
            return mapping.findForward("fail");
    }
      

  7.   

    我重起了tomcat,现在提交后isTokenValid(request,true)返回的
    都是false,即使是第一次提交也是这样,这是怎么回事??
    aChinese(一个中国人),我按照你说的做了,结果一样
      

  8.   

    在进入页面的action里调this.saveToken(request); //生成令牌
    页面里放 <html:form> 
    保存的Action里调用
    if (isTokenValid(request)){
                        //销毁产生新令牌
                        this.resetToken(request);
    return mapping.findForward("success");
    }else{
            return mapping.findForward("fail");
    }
      

  9.   

    aChinese(一个中国人),你的意思是在jsp页面里写代码:this.saveToken(request); 
    然后再提交到action?
      

  10.   

    当然不是, 应该有一个Action, 而不是一开始就进入jsp例如有一个叫 CreateAction {
        this.saveToken(request); 
        然后再分发到jsp;
    }
      

  11.   

    aChinese(一个中国人) ,我在action里就是这样写的,可是isTokenValid(request)返回
    的总是false,即使jsp第一次提交到action也是
    if (isTokenValid(request)){
        this.resetToken(request);
        this.saveToken(request);
        return mapping.findForward("success");
    }else{
        this.saveToken(request);
        return mapping.findForward("fail");
    }
      

  12.   

    一开始要放一个令牌在页面上, 才有得提交上来
     this.saveToken(request);前面有调用吗
      

  13.   

    谢谢interpb  我没引入标签   出现错误  !!!
    谢谢 !!大家 
      

  14.   

    if (this.isTokenValid(request, true)) {
         //执行语句
         return mapping.findForward("");
    }else{
         this.resetToken(request);
        this.saveToken(request);
        return mapping.findForward("");