关于jfinal多个拦截器出现的
@JFinal 你好,想跟你请教个问题:
最近在做一个功能,需要方式页面多次提交,所以做了一个通用的Tokken拦截器,
/** * 防止表单重复提交 */ public class TokenInterceptor implements Interceptor{ public void intercept(Invocation inv){ //动态参数 String flystoke = inv.getController().getPara("flystoke"); if(flystoke != null && !"".equals(flystoke)){ boolean token = TokenManager.validateToken(inv.getController(),flystoke); if(!token){ inv.invoke(); }else{ inv.getController().setAttr("flystokeMsg","请不要重复提交"); } }else{ inv.invoke(); } } }
action上边加上拦截器注解:
@Before({TokenInterceptor.class,UsersVal.class}) public void doRegs(){}
结果就出现了一个问题,页面上原本doRegs是一个action请求,请求后竟然变成了jsp请求。有些人说是拦截器中的
inv.invoke();没有把Controller的请求域移交到下一个处理域,还请帮忙解答。
Problem accessing /gmb/users/doRegs.jsp. Reason:
使用的是jetty1.8 + jfinal2.0
还有一种方式是使用Validator,但是一直有一个疑问,
1. 验证如何做到自动判定,从哪里来,返回到哪里去?(目前是写死的)
protected void handleError(Controller c) {
c.renderJsp("/register.jsp");
}
http://www.oschina.net/question/2381864_242532
另一种就是当前的拦截器用法,同样尴尬就是,拦截器是从哪里来,到哪里去,还有带上请求域数据。貌似目前的拦截器用.invoke()后,就变成了默认配置的jsp请求域了。
原本是action请求,拦截处理后变成了jsp请求。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。