Struts2 实现零配置(2)-Annotation
?9、Annotation
Action相关:
· 与Action相关的两个Annotation是@Action 和@Actions
· @Action中可指定一个value属性。类似于指定<action name=””/>属性值
· @Action中还可以指定一个params属性,该属性是一个字符串数组,用于该Acion指定的参数名和参数值。params属性应遵守如下格式:{“name1”,”value1”,”name2”,”value2”}
· @Actions 也用于修饰Action类里的方法,用于将该方法映射到多个URL.@Actions用于组织多个@Action.因此它可将一个方法映射成多个逻辑Action。
例如:
?
?
?与包和命名空间相关:
· @Namespace:修饰Action类或其所在的包。该Annotation中指定一个value属性值,用于指定被修饰的Action所在的命名空间
· @Namespaces:修饰Action类或其所在的包,用于组合多个@Namespace
· @ParentPackage: 用于指定被修饰的Action所在包的父包。
?
异常处理相关:
· @ExceptionMappings 用于组织多个@ExceptionMapping,因此它只需指定一个value属性值,该value属性值为多个@ExceptionMapping。
· @ExceptionMapping 用于定义异常类和物理视图之间的对应关系,也相当于struts.xml文件里<exception-mapping../>元素的作用
使用时,必须注意以下两个属性:
· exception: 用于指定异常类
· result :用于指定逻辑视图
· @ExceptionMpping有如下两种用法
· Action级的异常定义:以@ExceptionMappings组合多个@ExceptionMapping后修饰的Action类。这种异常定义对Action中的所有方法有效
· 方法级的异常定义: 将多个@ExceptionMapping组成数组后作为@Action的exceptionMappings属性值,这种异常定义仅对被修饰的方法有效。
?
拦截器配置相关:
· 与拦截器配置的Annotation有@InterceptorRef、@InterceptorRefs和@DefaultInterceptorRef
· @InterceptorRefs用于组织多个@InterceptorRef,因此它只需要指定一个value属性值,该value属性值为多个@InterceptorRef
· @InterceptorRef用于为指定Action引用拦截器或者是拦截器栈。也就相当于strut.xml中位于<action../>元素内部的<interceptor-ref../>子元素的作用。使用@InterceptorRefAnnotation时,必须制定一个value属性,用于指定所引用的拦截器或拦截器栈的名字。相当于<interceptor-ref../>子元素里name属性的作用。
· @DefaultInterceptorRef主要用于修饰包,用于指定该包的默认拦截器。这个Annotation只有一个value属性,用于指定默认拦截器的名字。
?