Struts2如何避免重复提交在不使用<s:token>这个标签

页面中使用<s:token> 是可以避免重复提交,但是加上这个标签后重复提交就会到一个错误页面。另外一种方法我在页面加一个隐藏域 放随机生成的数,然后Action得到这个随机数相比较 , 如果不等于空且相等的话就执行添加,否的话就不执行任何操作。这样做的话, 我用Dug调试查看的时候是不会重复提交,但当我直接运行的话还是会重复提交,而且在IE下几乎是100%的重复提交,火狐下就不会有这样的问题 。 以前有遇到过并且有好的办法解决的IT兄弟们帮忙看下,怎么才能比较好的解决这个问题。

其实token的实现就是把你的这种做法封装了下而下,理论上你的做法应该是没有问题的
火狐会自动刷新页面,ie不会主动去刷新页面
所以应该是你的请求提交之后,没有在action中把session或cache中的随机数置空,这个动作是要你自己去做的追问

我在请求提交后调用了removeToke()这个方法 。 这个方法就是将session中的随机数置空。奇怪就奇怪在 我用Dug跟踪调试 一点一点观察的时候 随机数被清空了, 但是的当我把断点去掉,直接运行 随机数就没有被清空 , removeToke()这个方法也被调用了! 十分不解 !

追答

清空之后跳转打哪里了?是否是又经过servlet了 参生新的值了

追问

断点调试的时候是被清空了 ,这样是正确的。直接运行的时候没有被清空 。

温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答