用了token以后发觉很不爽,比如我又A页面,在其中设置了<s:token/>,当我提交了之后,重复刷新就会报错,或者转向错误页面,这当然是我想看到的,可是当我重新进入A页面中时,再此提交,它依然不让我提交,出现如下提示:No result defined for action com.fuwei.web.actions.shopping.BuyCartAction and result inputdescription The requested resource (No result defined for action com.fuwei.web.actions.shopping.BuyCartAction and result input) is not available.还有就是,struts2会比较提交过去的名为login的token的值和session中名为login的token的值,那我第一次提交的时候,session中的名为login的值是什么时候设置的呢,又怎么知道要去设置成何login中的一样呢!

解决方案 »

  1.   

    token令牌机制的作用就是防止重复提交
    报你的撮是因为你没有配置一个input的返回结果值
    默认重复提交时转到input的页面
      

  2.   

    使用<s:token/>标签:1.拦截器中引用token拦截器。
    2.画面上使用<s:token/>标签。
    3.Action中配置invalid.token逻辑视图。注:要使用token必须在具体Action中配置token拦截器,否则项目中的所有都要配置invalid.token逻辑视图。例:有两个Action配置AA和BB    <action name="AA" method="doAA" class="AAAction">
           <result>/index.jsp</result>
        </action>    <action name="BB" method="doBB" class="BBAction">
           <result>/index.jsp</result>
        </action>假如BB使用token,配置如下:
        <action name="BB" method="doBB" class="BBAction">
           <interceptor-ref = "token">
           <interceptor-ref = "defaultStack">
           <result>/index.jsp</result>
           <result name="invalid.token">/tokenerror.jsp</result>
        </action>