webwork中的token拦截器,有时候点击一次也会报重复提交的错误!
问题: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模板)
为什么有时候会出现点击一次也报重复提交,有没有好的解决方案,谢谢!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
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);
}
最后返回数据重复提交,求解,谢谢!