大部分的操作和jfinal原来的是相似的
- 在跳转到view之前,生成token
createToken("jockillerToken", 30*60);
2.在页面中加入隐藏域,内容如下
<input type="hidden" name="jockillerToken" value="${jockillerToken}"/>
3.定义token拦截器,这就是唯一的一点不同的地方
/** * 防止表单重复提交 * @author jockiller_xuchg * */ public class TokenInterceptor implements Interceptor{ @Override public void intercept(Invocation inv) { boolean token = com.jfinal.token.TokenManager.validateToken(inv.getController(), "jockillerToken"); if(!token){ inv.invoke(); }else{ inv.getController().renderText("请不要重复提交"); } } }
如果,是重复提交,ajax的回调函数中会接受到"请不要重复提交"
4.在form条的action方法上面加上
Before(value = {TokenInterceptor .class })
测试一下吧..
时间: 2024-10-11 07:04:02