是这样的我把GET和POST写在一个方法上,如下代码配置表单验证:
/** * 密码验证 */ @Before(UserValidate.class) public void validPass() { String method = getRequest().getMethod(); if ("GET".equals(method)) { Integer id = getParaToInt(); setAttr("id", id); render("validPass.html"); } else if ("POST".equals(method)) { String pass = getPara("pass"); if (!sl.isEmpty(pass)) { pass = HashKit.md5(pass).toUpperCase(); } String openId = getCookie(Const.Co.USER); Record user = CacheKit.get("session", openId); if (!user.get("pwd").equals(pass)) { setAttr("id", getParaToInt()); setAttr("pass", pass); render("validPass.html"); return; } redirect("/admin/user/pay/" + getParaToInt()); } }
第一次进去也就是GET方法时验证拦截器已经被触发了,那提交数据时又被触发了一次,我有个想法就是执行GET时不触发验证拦截器,在POST请求时再触发这个UserValidate验证拦截器这种方式咋实现着呢?当然把GET和POST分开弄成两个方法是可以实现,但现在一个方法同时有GET和POST请求,这个@Before就没那么细化了,建议波总考虑细化下,或是有那些秘密我还未发现的请波总指点。^_^!!
项目:JFinal