参考学步园的博客,网址:http://www.xuebuyuan.com/1199608.html
场景:填写表单,点击提交,之后点击后退,再次点击提交按钮,此时可能会出现重复提交表单的情况。
避免重复提交:(1)表单中选项某字段设置唯一值;(2)创建页面,生成一个ID,隐藏在页面中,提交表单后将之前创建的ID作为这条数据的ID,这样当点击浏览器的返回时,该ID还是之前创建出来的ID,因此能够避免重复提交。
(3)Grails中令牌,在Controller下的withForm,可以实现。
withForm { // 第一次提交表单 // good request }.invalidToken {// 重复提交表单// bad request}
但是,在此之前得在表单页面的form添加
<g:form useToken="true" ...>