自定义拦截器
1: 定义一个类,实现Interceptor接口,
2: 定义一个类 ,继承AbstractorInterceptor
3: 定义一个类,继承MethodFilterInterceptor
选择第三种方式,比第二种多了一个功能,就是告知拦截器那些方法需要拦截,那些方法不需要拦截,
定义拦截器: interceptor
name: 定义的拦截器的名称
class: 拦截器的全路径
param: 定义拦截器中所需要的参数
配置拦截器中接受的参数,主要应用于继承了MethodFilterInterceptor
name: 拦截器中属性的名称,
excludeMethods : 不拦截的方法名
includeMethods: 拦截的方法名 默认不配置,拦截所有
如果有多个需要拦截的方法名,之间用"," 隔开.
使拦截器生效有两种方式,
1:在action中配置,
<interceptor-ref name=""> </interceptor/ref>
只会对当前动作方法有效
2.抽取到父包中,如果想使用struts2为我们提供的拦截器,需要使用拦截器栈的方式将默认的拦截器加入拦截器组中 设置默认拦截器
struts2的注解配置
常用注解:
@NameSpace
出现的位置:它只能出现在package上或者Action类上,一般情况下都是卸载Action类上
作用: 指定当前Action中所有动作方法的名称空间
属性: value _ 指定名称空间的名称,
@ParenPackage
出现位置:它只能出现在package上或者Action类上,一般情况下都是卸载Action类上
作用: 指定当前动作类所在的包的父母,由于我们已经在类中配置,所以不需要在指定包名
属性: value_指定父包的名称
@Action
出现位置: 它只能出现在Action类上或者动作方法中,一般情况下都是写在动作方法上
作用:指定当前动作方法的动作名称,也就是XML配置时 action标签的name属性
属性: value_指定动作名称.
results _ 它是一个数组, 数组类型是注解 用于指定结果视图
intercetporRefs[]; 它是一个数组,数组类型是注解,用于指定引用的拦截器
@Result
出现的为位置:它可以出现在动作类上,也可以出现在Action注解中
作用:用于配置多个结果视图,
属性: value : 他是一个数组,数据类型是result注解