struts2 注解与Action相关的两个Annotation是@Action 和@Actions2)@Action中可指定一个value属性。类似于指定<action name=””/>属性值
Struts2注解是框架提供的一种简化XML配置的方式,它允许开发者在Action类或方法上直接添加注解,实现Action、结果(Result)和拦截器(Interceptor)的配置。这种方式提高了代码的可读性和可维护性,同时也减少了XML配置文件的体积。
1. **配置web.xml**
在Struts2应用中,首先需要在`web.xml`中配置Struts2的过滤器。这里的`<filter>`和`<filter-mapping>`元素确保所有请求都会经过Struts2的处理器。`actionPackages`初始化参数指定了Action类所在的包路径,以便Struts2自动扫描和加载这些Action。
2. **Action注解**
- `@Action`: 这个注解用于标记Action类或方法,可以指定`value`属性,类似于XML配置中的`<action name="">`。此外,`@Action`还支持`interceptorRefs`属性来定义拦截器链,例如设置上传文件大小限制和基础拦截器栈。`results`属性则用于定义不同的结果页面,如成功和错误时跳转的JSP页面。`exceptionMappings`可以配置异常处理,当特定异常发生时转向指定的结果。
3. **验证注解**
Struts2提供了验证注解,如`@Validations`,用于字段验证。`@RequiredStringValidator`确保字段非空,而`@RegexFieldValidator`则验证字段是否符合特定正则表达式。如果希望跳过验证,可以使用`@SkipValidation`注解。
4. **Convention的Annotation**
- `@Actions`和`@Action`: 这两个注解用于Action的组织。`@Action`可以设置`value`属性来指定Action名称,并通过`params`属性设置额外的参数。`@Actions`则用于组合多个`@Action`,让一个方法对应多个逻辑Action。
5. **Result配置相关的Annotation**
- `@ResultPath`: 定义结果路径的基目录。
- `@Result`和`@Results`: `@Result`等同于XML配置中的`<result/>`元素,用于定义结果页面。必须设置`name`属性,可选的`type`属性指定了结果类型(如JSP、Freemarker等),`location`设置实际视图的位置,`params`用于添加额外的参数。
- `@Results`: 用于组织多个`@Result`,只需要设置一次`value`属性,就可以定义多个结果。
6. **Action级的Result映射**
使用`@Actions`和`@Action`组合,可以在一个Action类中定义多个Action,每个Action可以有自己的结果映射。这允许更灵活地控制Action和结果之间的关系。
Struts2的注解功能极大地简化了开发过程,使得Action、Interceptor和Result的配置更加直观和便捷。开发者可以根据项目需求,选择适合的注解进行配置,从而提高开发效率和代码的可读性。