webwork中的token拦截器,有时候点击一次也会报重复提交的错误!

小恩同学 发布于 2013/11/14 11:55
阅读 407
收藏 0

问题:webwork中的token拦截器,有时候点击一次也会报重复提交的错误!

描述:

    1、已经配置的的文件有:webwork.xml中的拦截器栈中引入token

    2、在webwork.xml配置文件中<action name="saveUserDrawBank" class="" method="">
             <result name="success" type="redirect"></result>
           
            <result name="invalid.token" type="dispatcher">
                <param name="location" />
            </result>            


            <interceptor-ref name="submitToken"/>            
        </action>

    3、在表单中加入<@ww.token />(freemarker模板)

为什么有时候会出现点击一次也报重复提交,有没有好的解决方案,谢谢!

加载中
0
小恩同学
小恩同学

token源码是这样的

 public static final String TOKEN_NAME_FIELD = "webwork.token.name";

 if (!params.containsKey(TOKEN_NAME_FIELD)) {

            LOG.warn("Could not find token name in params.");


            return null;

        }


会不会是因为有些系统,或浏览器的问题导致webwork无法自动生成表单隐藏域webwork.token 和 webwork.token.name?从而导致第一次读取数据为null,然后

synchronized (session) {
            if (!TokenHelper.validToken()) {
                return handleInvalidToken(invocation);
            }


            return handleValidToken(invocation);
        }
最后返回数据重复提交,求解,谢谢!

返回顶部
顶部