@JFinal 你好,想跟你请教个问题:
现在做了一个全局: login Interceptor
public class LoginInterceptor implements Interceptor {
public void intercept(ActionInvocation ai) { Controller controller=ai.getController(); UserVO userVO=controller.getSessionAttr("user"); if (userVO==null){ controller.redirect("/login.jsp"); }else { ai.invoke(); } } }
/** * 配置全局拦截器 */ public void configInterceptor(Interceptors me) { me.add(new LoginInterceptor()); }
本意是拦截所有页面,只要没登陆,就返回登陆页面,但现在问题是在“登陆页面”中正确输入用户名及密码,还是始终返回这个login.jsp页面,仔细一想,我登陆页面用到了一个UserController(如下图示:),问题是不是出在这里?拦截器连这个UserController一起给拦截了?请问应如何做才能不拦截这个controller?还是把这个LoginInterator降级为Ctroller级,如果这样那要注解的地方不是很多?
public class UserController extends Controller {
@ActionKey("/login")
public void login(){
System.out.println("login controller");
String name=getPara("user");
String pwd=getPara("pwd");
User user= User.dao.findFirst("select * from user where name =? and pwd=?", name,pwd);
if (user!=null){
UserVO userVO=new UserVO();
userVO.setName(user.getStr("name"));
userVO.setPwd(user.getStr(pwd));
setSessionAttr("user", userVO);
redirect("/gallery");
}else{
render("/login.jsp");
}
}
}
@ClearInterceptor(ClearLayer.ALL)
######
@ClearInterceptor(ClearLayer.ALL)
@ClearInterceptor public class UserController extends Controller { ... }######
@ClearInterceptor(ClearLayer.ALL)
@ClearInterceptor public class UserController extends Controller { ... }
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。