是这样的我把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