Struts2拦截器_自我学习

假如说,页面一个输入控件,如果没有输入内容就提交,则对其进行拦截

1,首先定义一个拦截器

public class Myintercept implements Interceptor {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	public void destroy() {

	}
	public void init() {
	}
	public String intercept(ActionInvocation invocation) throws Exception {
		Upload action = (Upload)invocation.getAction();
		String name = action.getName();
		if("".equals(name)||null==name)
		{
			System.out.println("已拦截");
			return "wrong";
		}
		else
		{
			return invocation.invoke();//该方法返回的就是action里面的视图名称;
		}
	}

}

 然后配置该action所在的配置文件

<!--
	如果配置下列代码,该包下所有的action都会配置上该拦截器
	-->
	<!--
	<default-interceptor-ref name=""></default-interceptor-ref>
	-->
		<interceptors>
			<interceptor name="lanjieqi" class="com.intercept.Myintercept"></interceptor>
			<interceptor-stack name="lanjieqizhan">
				<interceptor-ref name="defaultStack"></interceptor-ref>
				<interceptor-ref name="lanjieqi"></interceptor-ref>
			</interceptor-stack>
		</interceptors>
		<action name="upload" class="com.upload.Upload" >
		<interceptor-ref name="lanjieqizhan"></interceptor-ref>
			<result name="success">/index.jsp</result>
			<result name="wrong">/index.jsp</result>
		</action>

 需要注意的是,假如你应用了自己的拦截器,则struts2所提共的拦截器会全部失效,解决方法就是定义一个拦截器栈,在拦截器栈中引用默认拦截器和自定义拦截器,默认拦截器必须在第一位,然后再action配置中引入该拦截器栈

猜你喜欢

转载自alexshaw.iteye.com/blog/1819563