开发中遇到一个问题,用户在某次提交表单后,redirect到一个结果页面,然后点击后退,会直接跳回刚才的表单页,又可以提交了,想禁止这种重复提交,搜索了一下,得到
response.setHeader("Pragma","No-cache");
response.setHeader("Cache-Control","no-cache");
response.setDateHeader("Expires", 0);
这样设置后能够不出现这个问题。
想问下大家,在Struts2中,有什么办法能够实现?谢谢~
你是在服务器端加的,转发的话,还可以,如果要重定向的话,可能就会无效了,我是在页面上加的
你可以在Struts2中加个拦截器或是tomcat中加一个filter实现你的目的。
[quote]然后点击后退,会直接跳回刚才的表单页,又可以提交了,想禁止这种重复提交[/quote]
你想如何禁止这种提交,或者说你希望有什么样的效果? 比如说: 跳会到刚才页面后,用户提交会报错?
[quote]我期望用户不能回到刚才的页面,或者回去了以后,动态内容已经改变了,并且表单数据也已经重置了。[/quote]
恩,这个就和web服务器就没有关系了,和浏览器相关。查查看有没有设置浏览器特性的方法。不过个人觉得这种做法不一定好,而且不同的浏览器特性还不一样,很难兼容。
你可以换一种思考方试,你可以在保存之前先查看这条记录有没有存在,如果存在了则什么也不做,直接跳过去。如果不存在,则save
在页面上加个禁止缓存,后退后就过期了的那些种。。。