我们看struts的底层代码struts-default.xml中发现好多interceptor,这个究竟是什么??今天小狼就告诉你哦。。。
写一个简单的jsp,在里面写一个简单的链接
<%@ page language="java" pageEncoding="utf-8" contentType="text/html; charset=utf-8"%>
<%@ taglib uri="/struts-tags" prefix="s"%>
<html>
<head>
<title>My JSP 'index.jsp' starting page</title>
</head>
<body>
测试拦截器:<br>
<a href="userAction_save.love">test</a><br>
</body>
</html>
写一个简单的action,配置一下struts .xml。把这个工程跑通就ok了。
下面,我们来写一个自定义拦截器类,实现Interceptor接口。别的方法就空实现就行,我们先把工程的主体需求跑通。这里就写一个Intercept方法
zcy.test.aop.ExpessionInterceptor.java
public String intercept(ActionInvocation invocation) throws Exception {
// TODO Auto-generated method stub
Map sessionMap = ServletActionContext.getContext().getSession();
Object obj = sessionMap.get("user");
if (obj == null || obj.equals("")) {
return "error";
} else {
return invocation.invoke();
}
}
下面配置一下struts.xml,在当前包下加入如下配置
<interceptors>
<!-- 声明自定义的拦截器 -->
<interceptor name="expessionInterceptor" class="zcy.test.aop.ExpessionInterceptor" />
<!-- 声明自定义拦截器栈 -->
<interceptor-stack name="expessionStack">
<interceptor-ref name="defaultStack"/>
<!-- 配置使用自定义拦截器 -->
<interceptor-ref name="expessionInterceptor"/>
</interceptor-stack>
</interceptors>
<!-- 配置修改struts2框架运行时,默认执行的是自定义拦截器栈 -->
<default-interceptor-ref name="expessionStack" />
这样就ok了,一个简单的struts2自定义拦截器就ok了。。。小狼说的够清楚了吧。亲爱的亲们留下你们的观后感吧。