public void add() { createToken("blogToken", 30*60); //过期时间设置为30分钟
render("add.html");
}
@Before(BlogValidator.class) public void save() { getModel(Blog.class).save(); list(); }
页面的话在你要防止重复提交数据的form中添加
<input type="hidden" name="blogToken" value="${blogToken}" />
接下来你可以在BlogValidator中的
protected void validate(Controller c) { validateToken("blogToken", "msg", "alert('上次已保存,请不要重复提交')"); } 也可以把validateToken放到action中如果返回true表示不是重复提交!
如果false表示是重复提交,可以
setAttr("msg", "alert('请不要重复提交数据')"); render("xxxx")或者调用list方法 return; 好像还有更方便的用法,请大家自己研究吧。另外,JFinal作者也是很有耐心的,有问必答的那种!
最后在add方法最后添加 if (result.msgs == "againsubmit") {
alertErrorMsgOnTR("请耐心等待,不要重复提交!");}
@Before(AgainSubmitValidator.class)
@Before添加到方法上面
要放到<form>里面
<input type="hidden" name="submitToken" value="${submitToken}" />
跳转到这个方法的页面
createToken("submitToken", 30*60);