- 拦截器组件编写----实现Interceptor接口及其约定方法。
public class CheckLoginInterceptor implements Interceptor{ public void destroy() { // TODO Auto-generated method stub } public void init() { // TODO Auto-generated method stub } //方法执行了invoke返回值无效;未执行invoke返回值有效,要根据返回String调用Result public String intercept(ActionInvocation invocation) throws Exception { Map<String,Object> session = ActionContext.getContext().getSession(); if(session.get("user") != null){//session有用户信息 invocation.invoke();//继续执行Action+Result return null; }else{//session没有用户信息 return "nologin"; } } }
- 拦截器组件配置----在struts.xml配置,配置格式
<package name="basedemo" extends="struts-default"> <interceptors> <interceptor name="check" class="cn.xdl.interceptor.LoginInterceptor"></interceptor> <interceptor-stack name="checkStack"> <interceptor-ref name="check" /> <interceptor-ref name="defaultStack" /> </interceptor-stack> </interceptors> <global-results> <result name="nologin">/login.jsp</result> </global-results> </package>
/* Struts2有默认的拦截器。为action指定了拦截器后,默认的defaultStack拦截器栈不会调用,必须用<interceptor-ref name="defaultStack">显式指定调用*/
<package name="demo1" extends="basedemo"> <action name="hello" class="cn.xdl.action.HelloAction" method="hell"> <interceptor-ref name="checkStack" /> <result name="ojbk">/hello.jsp</result> </action> </package>
Struts2学习____实现登录拦截器demo
最新推荐文章于 2018-12-27 12:10:19 发布