前置条件:已完成一个简单的struts2登录实例
1、在src>tool包下新建拦截器实现类MyInterceptor.java
package tool;
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.AbstractInterceptor;
import action.MainAction;
public class MyInterceptor extends AbstractInterceptor{
@Override
public String intercept(ActionInvocation arg0) throws Exception {
// TODO Auto-generated method stub
MainAction mainAction=(MainAction)arg0.getAction();//获得action拦截对象
//编写拦截规则,如果登录名为Admin或admin则页面跳转至login.jsp
if(mainAction.getUser().getAccount().equals("admin")||
mainAction.getUser().getAccount().equals("Admin")){
return mainAction.INPUT;
}else{
return arg0.invoke();//继续执行action类,或其他拦截器
}
}
}
2、在配置文件strut.xml中配置引用拦截器
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<package name="default" extends="struts-default">
<interceptors>
<interceptor name="myinterceptor" class="tool.MyInterceptor">
</interceptor>
</interceptors>
<!-- 用户登录action -->
<action name="main" class="action.MainAction">
<result name="success">/success.jsp</result>
<result name="error">/error.jsp</result>
<result name="input">/login.jsp</result>
<!-- 拦截器配置引用在result后面 -->
<!-- 调用系统的默认拦截器,以免获取不到页面参数请求-->
<interceptor-ref name="defaultStack"/>
<interceptor-ref name="myinterceptor"></interceptor-ref>
</action>
</package>
<!-- <constant name="struts.i18n.encoding" value="gb2312"></constant> -->
</struts>
3、保存后启动Tomcat,使用浏览器验证admin用户名
点击提交跳转到当前页