实际的开发过程中如果只使用struts2-convention-plugin约定,也许不能完全满足实际项目的需要。幸运的是struts2-convention-plugin支持使用注解覆盖默认约定,这样就使得配置变得相当灵活。
Convention 的 Annotation
Conversion 插件使用 Annotation 来管理拦截器, 异常处理等相关配置. Conversion 还允许使用 Annotation 管理 Action 和 Result 的配置, 从而覆盖 Conversion 的约定.
Action 配置相关的 Annotation
与 Action 相关的两个 Annotation 是 @Action 和 @Actions
@Action 主要用于修饰 Action 类里的方法, 用于将方法映射为指定的 URL.
@Action 可以指定一个 value 属性, 用于指定该 Action 映射的URL(类似于在 struts.xml 文件中配置该 Action 时为 <action /> 元素指定的 name 属性值)
@Action 还可以指定一个 param 属性, 该属性是一个字符串数组, 用于该 Action 指定参数名和参数值. params 属性值应该遵守如下格式: {“name1”, “value1”, “name2”, “value2”, …}. 该属性用于为该 Action 注入属性值
@Actions 也用于修饰 Action 类里的方法, 用于将该方法映射到多个 URL. @Actions 用于组织多个 @Action.
Result 配置相关的 Annotation
和 Result 配置相关的 3 个 Annotation 是 @Result , @Results 和 @ResultPath
@Results 用于组织多个 @Result, 因此它只需一个 value 属性值, 该 value 属性值为多个 @Result。
@Result 用于定义逻辑视图和物理视图之间的对应关系, 也就是相当于 struts.xml 文件里 <result …/> 元素里的作用
name*: 指定 result 的名字, 相当于 <result …/> 节点的 name 属性
type: 指定视图资源的类型, 相当于 <result …/> 节点的 type 属性
locations: 指定实际视图的位置, 相当于 <result …></result> 的中间部分
params: 为视图资源指定参数值. 属性值应满足 {name1, value1, name2, value2…} 的格式. 相当于 <result…></result> 的 <param> 子节点
@Result 有如下两种用法
Action 级的 Result 映射: 以 @Actions 组合多个 @Action 后修饰的 Action 类. 这种 Result 映射对该 Action 里的所有方法都有效
方法级的 Result 映射: 将多个 @Result 组成数组后作为 @Action 的 results 属性值. 这种 Result 映射仅对被修饰的方法有效
@ResultPath 用于改变被修饰 Action所对应的物理视图资源的根路径. 例如: 默认情况下, Conversion 插件会到 WEB-INF/content 路径下寻找物理视图资源. 但若使用 @ResultPath(“/simpleit”) 修饰 Action, 系统将会到 simpleit 目录下寻找物理资源
包和命名空间相关的 Annotation
与包和命名空间相关的 Annotation 有如下 2 个
@Namespace: 修改 Action. 该 Annotation 只需指定一个 value 属性值, 用于指定被修改的 Action 所在的命名空间.
@ Namespaces: 修饰 Action. 用于组合多个 @Namespace.
与异常相关的 Annotation
与异常相关的 Annotation有 @ExceptionMapping 和 @ExceptionMappings
@ExceptionMappings 用于定义异常类和物理视图之间的对应关系, 也就是它只需指定一个 value 属性值, 该 value 属性值为多个 @ExceptionMapping
@ExceptionMapping: 用于定义异常类和物理视图之间的对应关系, 也就是相当于 struts.xml 文件里 <exception-mapping …/> 元素的作用. 使用 @ExceptionMapping 时必须指定如下两个属性:
exception: 用于指定异常类, 相当于 <exception-mapping…/> 元素的 exception
result: 用于指定逻辑视图名, 相当于 <exception-mapping …/> 元素的 result
@ ExceptionMapping 有如下两种用法:
Action 级的异常定义: 以 @ExceptionMappings 组合多个 @ExceptionMapping 后修饰 Action 类. 这种异常定义对 Action 里的所有方法都有效.
方法级的异常定义: 将多个 @ExceptionMapping 组成数组后作为 @Action 的 exceptionMappings 属性值. 这种异常定义仅对修饰的方法有效.
拦截器配置相关的 Annotation
拦截器配置相关的 Annotation 有 @InterceptorRef, @InterceptorRefs, @DefaultInterceptorRef
@InterceptorRefs 用于指定多个 @InterceptorRef, 因此该 Annotation 只需指定一个 value 属性值, 该 value 属性值为多个 @ InterceptorRef
@InterceptorRef 用于为指定 Action 引用拦截器或者拦截器栈. 也就是 struts.xml 文件中 <action…> 节点内部的 <interceptor-ref …/> 子元素的作用. 属性如下
vlaue*: 用于指定所引用拦截器或拦截器栈的名字, 相当于 <interceptor-ref …/> 子元素中的 name 属性
params: 用于覆盖所引用该拦截器的默认参数值. 该属性应满足 {name1, value1, name2, value2, …} 的格式. 相当于 <interceptor-ref …/> 元素的 <param> 子元素.
@InterceptorRef 有如下两种用法
Action 级的拦截器配置
方法级的拦截器配置
@DefaultInterceptorRef: 主要用于修饰包, 用于指定该包的默认拦截器. 这个 Annotation 只有一个 value 属性, 用于指定默认拦截器的名字.
相关推荐
Struts2零配置是Struts2框架的一种简化配置方式,旨在减少XML配置文件的使用,提高开发效率。在传统的Struts2应用中,开发者需要在多个XML文件中配置Action、结果页面、拦截器等,而“零配置”则是对这种繁琐配置的...
综上所述,Struts2的零配置特性大大简化了Java Web应用的开发,通过注解和插件机制,开发者可以快速构建应用而无需过多关注XML配置。不过,理解如何恰当地使用这些工具以及它们对性能的影响仍然是至关重要的。在实际...
这个名为"Struts2零配置+FreeMarker用户管理系统(UMS)"的项目,旨在通过注解的方式展示如何在不编写XML配置文件的情况下,利用Struts2和FreeMarker创建一个用户管理系统。 首先,我们来了解一下Struts2框架。Struts...
在这个"struts2.3.4.1注解零配置"的例子中,我们将深入探讨如何利用Struts2的注解来构建一个简单的登录系统。 首先,了解Struts2的核心概念是必要的。Struts2是一个基于MVC(Model-View-Controller)设计模式的框架...
### Struts2零配置个人整理文档 #### 一、Convention插件详解 ##### 1. 设置结果页面路径 - **背景介绍**:Struts2框架提供了便捷的方式来处理Web请求,并返回响应视图。为了简化配置过程,Struts2提供了一个名为...
1. **注解驱动**:Struts2的零配置特性主要依赖于Java的注解功能。通过在Action类和方法上添加特定的注解,如`@Action`、`@Results`等,Struts2框架能够自动识别并处理这些注解,从而省去在XML中定义Action和结果的...
在Struts2中,注解的引入使得开发者可以摆脱繁琐的`struts.xml`配置文件,实现“零配置”运行。 首先,让我们了解什么是注解(Annotation)。注解是Java提供的一种元数据机制,允许在源代码中嵌入信息,这些信息...
本文档主要涵盖了Struts2中注解配置的一些基本知识点以及如何通过注解实现零配置。 ### 注解配置之前 在介绍注解配置之前,需要了解注解的基本用法和语法规则。注解通常放在Java语法单元头上,一个语法单元头上...
总的来说,“struts2零配置入门代码”是一个很好的起点,帮助开发者理解Struts2框架如何通过注解实现无XML配置的应用程序。这种方式不仅降低了学习曲线,还提高了开发效率,使得开发者能够更专注于业务逻辑的实现,...
本项目"Struts+Spring+Hibernate注解零配置整合"的目标是展示如何通过注解方式实现这三大框架的无缝集成,从而减少XML配置文件的使用,提高开发效率和代码可读性。 在传统的Struts、Spring和Hibernate整合中,大量...
Struts2支持资源文件来实现国际化,即使在零配置下,我们仍然可以使用`@Text`注解来获取资源文件中的文本。 7. **错误和异常处理**: 可以通过`@ExceptionHandler`和`@ActionError`注解来处理Action中的异常和...
### STRUTS2:零配置插件CodeBehind详解 #### 一、概述 Struts2框架作为Java Web开发中的一款重要工具,在简化Web应用程序开发方面提供了丰富的功能与灵活性。随着框架的发展,Struts2社区不断推出新的插件和技术...
从 Struts2.1 版本开始,官方不再推荐使用 Codebehind 作为零配置插件,而是转向了 Convention 插件来实现零配置的目标。相较于 Codebehind,Convention 插件更加彻底地简化了配置过程,不仅不需要使用 struts.xml ...
"零配置"是指在Struts2中可以通过不写XML配置文件,而是利用注解或者Java配置来实现应用程序的配置。这种方式使得代码更加简洁,也更易于维护。下面我们将深入探讨Struts2的零配置实现及其所需的包和示例。 首先,...
在“struts零配置HelloWorld-Annotation”这个项目中,我们将重点探讨如何利用注解来实现Struts2框架的配置,这对于初学者来说是一个很好的起点。 在传统的Struts2配置中,我们需要在`struts.xml`文件中手动定义每...
"Struts2零配置"指的是尽量减少或消除传统Struts2应用中的XML配置文件,转而使用注解或自动化工具来简化配置过程。这有助于提高开发效率,降低出错概率,使代码更加模块化。 LightURL插件是Struts2社区提供的一种...