Struts2自定义拦截器

来源:互联网 发布:巨鹿之战 知乎 编辑:程序博客网 时间:2024/06/06 10:03

自定义拦截器类:

public class Myinterceptor extends AbstractInterceptor{    @Override    public String intercept(ActionInvocation arg0) throws Exception {        // TODO Auto-generated method stub        //先得到上下文        ActionContext context = arg0.getInvocationContext();        //根据上下文得到session        Map<String, Object> session = context.getSession();        //取session中的值        if(session.containsKey("loginName")){            arg0.invoke();//通过        }else{            context.put("msg", "login please");            return "error";        }        return null;    }}

LoginAction类:

import java.util.Map;import com.opensymphony.xwork2.ActionContext;public class LoginAction {    private String loginName;    public String getLoginName() {        return loginName;    }    public void setLoginName(String loginName) {        this.loginName = loginName;    }    public String init(){        return "init";    }    public String welcome(){        return "welcome";    }    public String login(){        String forword = "error";        if(loginName.equals("admin")){            ActionContext context = ActionContext.getContext();            Map<String, Object> session = context.getSession();            session.put("loginName", loginName);            forword = "login";        }        return forword;    }}

struts.xml配置文件

<!-- 1.定义自己的拦截器 -->            <interceptors>                <interceptor name="myInterceptor" class="com.ly.myinterceptor.Myinterceptor"/>                <!-- 2.定义自己的拦截器和默认拦截器结合 -->                <interceptor-stack name="myStack">                    <interceptor-ref name="myInterceptor"/>                    <interceptor-ref name="defaultStack"/>                </interceptor-stack>                </interceptors>            <!-- 3.变成默认拦截器 -->            <default-interceptor-ref name="myStack"/>            <!-- 4.全局共享result -->            <global-results>                <result name="error">/error.jsp</result>            </global-results>
1 0