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。
例如:
private String str; @Actions({ @Action(login1,params={"str","这是已经注入的了!"}),// 键值对应注入属性值 @Action(login2) }) public String login(){ return "str"; } ……
Result相关:
· @ResultPath @Result 和Results
· @Results用于组织多个@Result因此它只需指定一个value属性值,该value属性值为多个@Result
· @Result。使用@Result必须指定一个name属性,相当于<result name=””/>另外,它还有几个可选的属性。
· type 相当于<result type=””/>指定返回视图资源的类型
· location 相当于<result>…..</result>中间部分,用于指定实际视图位置
· params:该属性相当于<result/>元素里多个<param../>子元素的作用,用于为该Result指定参数值。该属性应满足{“name1”,”value1”,”name2”,”value2”}格式
· @Result有以下两种用法
· Action级的Result映射:以@Actions组合多个@Action后修饰的Action类。这种Result映射对该Action里的所有方法都有效。
· 方法级Result映射:将多个@Result组成数组后作为@Action的results属性值。这种Result映射仅对被修饰的方法有效。
· @ResultPath则用于修饰包和Action类,用于改变被修饰Action所对应的物理视图资源的根路径。
举例说:默认情况下,Convention都会到WEB-INF/content路径下找物理视图资源,一旦我们使用@ResultPath(“/abc”)修饰该Action,系统将回到abc目录下寻找物理视图资源。举例:在默认情况下,Convention都会到WEB-INF/content路径下需找物理视图资源,一旦我们使用@ResultPath(“/abc”)修饰该Action,系统会到abc目录下寻找物理视图资源。
例子:
// 指定该Action到/WEB-INF/abc目录下寻找物理视图资源 @ResultPath("/WEB-INF/abc") // 为该Action指定2个Action级的Result映射 @Results({ @Result(name="input" , location="input.jsp"), @Result(name="error" , location="error.jsp") }) public class LoginAction { // 使用@Action将该方法映射到/crazyit @Action(value="/crazyit", // 使用results属性为该方法指定Result映射 results={@Result(name="success", location="http://www.crazyit.org", type="redirect")} ) public String login() throws Exception { return "success"; } }
与包和命名空间相关:
· @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属性,用于指定默认拦截器的名字。
相关推荐
在“struts零配置HelloWorld-Annotation”这个项目中,我们将重点探讨如何利用注解来实现Struts2框架的配置,这对于初学者来说是一个很好的起点。 在传统的Struts2配置中,我们需要在`struts.xml`文件中手动定义每...
Struts2零配置是Struts2框架的一种简化配置方式,旨在减少XML配置文件的使用,提高开发效率。在传统的Struts2应用中,开发者需要在多个XML文件中配置Action、结果页面、拦截器等,而“零配置”则是对这种繁琐配置的...
在Struts2中,注解的引入使得开发者可以实现零配置的编程,提高了开发效率和代码的可读性。JSON(JavaScript Object Notation)作为一种轻量级的数据交换格式,广泛用于前后端数据传输。在Struts2中,通过集成JSON...
在Struts2中,注解的引入使得开发者可以摆脱繁琐的`struts.xml`配置文件,实现“零配置”运行。 首先,让我们了解什么是注解(Annotation)。注解是Java提供的一种元数据机制,允许在源代码中嵌入信息,这些信息...
6. **零配置**:项目的核心理念是零配置,这意味着开发者可以专注于业务逻辑的实现,而无需花费大量时间在配置文件上。这极大地提升了开发者的生产力,同时使得项目更具可读性和可扩展性。 7. **测试与调试**:SSH2...
【标题】"s2sh基于annotation实现零配置的毕业设计(网上花店系统)" 描述了一种使用注解(Annotation)技术在Spring、Struts2和Hibernate(简称S2SH)框架下构建的无XML配置的毕业设计项目。这个项目以一个网上花店...
【基于Annotation的S2SH实现零配置CRM】 在IT行业中,CRM(Customer Relationship Management)系统是一种用于管理企业与客户之间关系的重要工具。S2SH,即Struts2、Spring和Hibernate的组合,是Java Web开发中常用...
【标题】中的“s2sh基于annotation实现零配置文件的教务管理系统”指的是一个使用Struts2、Spring和Hibernate(通常简称为S2SH)框架的毕业设计项目,该系统利用注解(Annotation)技术实现了无需XML配置文件的管理...
【标题】"基于annotation s2sh实现零配置的教务管理系统"揭示了这个项目的核心技术特点,即使用了Spring、Struts2和Hibernate这三大框架的集成(S2SH),并借助注解(Annotation)来实现系统的零配置。在传统的S2SH...
Struts2支持资源文件来实现国际化,即使在零配置下,我们仍然可以使用`@Text`注解来获取资源文件中的文本。 7. **错误和异常处理**: 可以通过`@ExceptionHandler`和`@ActionError`注解来处理Action中的异常和...
1. **简化配置**:使用注解可以极大地减少Struts2配置文件中的内容,官方甚至提出了“零配置”(Zero Configuration)的概念。 2. **简化开发**:通过注解,开发者可以直接在代码中指定Action、拦截器(Interceptor...
在本项目中,我们采用“基于annotation的S2SH(Struts2、Spring、Hibernate)实现零配置的教务管理系统改进版”,这表明了系统设计的核心在于利用Java框架的注解能力来减少传统XML配置文件的使用,从而提高开发效率...
在这个"sshFrame(struts2.3.4+spring3.1+heibernate4.0+annotation零配置"项目中,我们看到作者使用的是Struts2的3.4版本,Spring的3.1版本以及Hibernate的4.0版本,这些都是成熟且广泛使用的开源库。 **Struts2** ...
而"zero"可能是指与零配置相关的源代码文件或者项目目录,包含了实现零配置功能的具体代码和结构。 总的来说,这个项目展示了Java Web开发中一种现代化、简洁化的实践方式,通过注解减少了XML配置,提高了开发效率...
在Struts 2中,"零配置"通常通过注解(Annotation)实现。开发者可以在Action类的方法上使用注解来声明动作、结果页面和其他相关属性。例如,`@Action` 注解用于标记执行的动作,`@Result` 注解用于定义操作的结果...
使用Maven3.0.5, Struts2, Spring, Hibernate3, annotation实现零配置的开发框架.里面有详细的开发指导文档, 后台用googlecode的 hibernate-generic-dao - Generic DAO 和 Search的代码,完全进行封装. 由于Generic ...
- Annotation配置:使用注解标记Action类和方法,实现零配置开发。 - Convention配置:基于约定,Action类名和方法名自动映射到URL。 5. **结果类型(Result)**: - Struts2支持多种结果类型,如dispatcher(转发...
从 Struts2.1 版本开始,官方不再推荐使用 Codebehind 作为零配置插件,而是转向了 Convention 插件来实现零配置的目标。相较于 Codebehind,Convention 插件更加彻底地简化了配置过程,不仅不需要使用 struts.xml ...