struts2简单拦截器

前置条件:已完成一个简单的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用户名

点击提交跳转到当前页

猜你喜欢

转载自blog.csdn.net/zero_130/article/details/81165836
今日推荐