自定义一个类,继承MethodFilterInterceptor类,实现doIntercept方法
public class LoginInterceptor extends MethodFilterInterceptor{
@Override
protected String doIntercept(ActionInvocation action) throws Exception {
// TODO Auto-generated method stub
//获取session
Map<String, Object> map=ActionContext.getContext().getSession();
//判断是否登录
if(map.get("isLogin")!=null){
//放行
return action.invoke();
}else{
//返回登录页面
return "login";
}
}
}
通过struts2的配置文件把定义的类定义成默认拦截器
<!-- 配置自定义拦截器 -->
<interceptors>
<!-- 设置拦截器 -->
<interceptor name="myInterceptor" class="com.entor.interceptor.LoginInterceptor"></interceptor>
<interceptor-stack name="myDefaultInterceptor">
<interceptor-ref name="basicStack"></interceptor-ref>
<interceptor-ref name="myInterceptor">
<!-- 设置要拦截的方法,多个用逗号隔开 -->
<param name="includeMethods">add</param>
</interceptor-ref>
</interceptor-stack>
</interceptors>
<!-- 把自定义拦截器定义成默认拦截器 -->
<default-interceptor-ref name="myDefaultInterceptor"></default-interceptor-ref>