Struts2的注解功能
来源:互联网 发布:热血传奇mac 编辑:程序博客网 时间:2024/05/17 01:31
我们知道通常情况下,Struts2是通过struts.xml配置的。但是随着系统规模的加大我们需要配置的文件会比较大,虽然我们可以根据不同的系统功能将不同模块的配置文件单独书写,然后通过<include>节点将不同的配置文件引入到最终的struts.xml文件中,但是毕竟还是要维护和管理这些文件,因此也会给维护工作带来很大的困扰。为了解决这个问题,可以考虑使用struts2的注解。实际上struts2中最主要的概念就是package、action以及Interceptor等等概念,所以只要明白这些注解就可以了。
如果希望使用struts2的注解功能,必须使用一个包struts2-convention-plugin-2.1.8.1.jar,我使用的环境是struts2.1.8.1。如果你使用了不同的版本,找名字就行。
在以上所述的jar文件中定义了一系列的注解,其中比较主要的是:
•@ParentPackage,这个注解对应了xml文件中的package节点,它只有一个属性叫value,其实就是package的name属性;•@Namespace,命名空间,也就是xml文件中<package>的namespace属性;•@Action,这个注解对应<action>节点。这个注解可以应用于action类上,也可以应用于方法上。这个注解中有几个属性:•value(),表示action的URL,也就是<action>节点中的name属性;•results(),表示action的多个result;这个属性是一个数组属性,因此可以定义多个Result;•interceptorRefs(),表示action的多个拦截器。这个属性也是一个数组属性,因此可以定义多个拦截器;•params(),这是一个String类型的数组,它按照name/value的形式组织,是传给action的参数;•exceptionMappings(),这是异常属性,它是一个ExceptionMapping的数组属性,表示action的异常,在使用时必须引用相应的拦截器;•@Result,这个注解对应了<result>节点。这个注解只能应用于action类上。这个注解中也有几个属性:•name(),表示action方法的返回值,也就是<result>节点的name属性,默认情况下是【success】;•location(),表示view层文件的位置,可以是相对路径,也可以是绝对路径;•type(),是action的类型,比如redirect;•params(),是一个String数组。也是以name/value形式传送给result的参数;
实际上,struts2中的主要注解就是这些,当然了,还有上面提到的@interceptorRef和@exceptionMapping;基本上,掌握了这些注解就可以了。
但是如果想让这些注解真正工作,必须在配置文件增加几个常量的定义:
- struts.convention.default.parent.package:这个常量表示缺省的包名是什么,因为在实际应用中,我们常常定义一个缺省的包,这个包中定义了一大堆的拦截器等等,然后其他的包继承自这个包。这个常量可以配也可以不配;
- struts.convention.package.locators:这个常量表示你的action类的java包的包名的后缀是啥:比如action。这个常量也可以不配;
- struts.convention.package.locators.basePackage:这个常量表示你的action类的java包package的名字是啥;这个常量也可以不配;
以上三个常量都是辅助作用的,为了让注解真正的工作,必须在配置文件中增加<package>节点的配置,至少是<package name="myPackage" extends="struts-default" />,这样注解就可以使用了。
- Struts2的注解功能
- Struts2的注解功能
- Struts2的注解功能
- Struts2的注解功能
- Struts2的注解功能
- Struts2的注解功能
- Struts2的注解功能
- Struts2的注解功能
- Struts2的注解功能
- Struts2的注解功能
- struts2的注解功能
- Struts2的注解功能
- Struts2的注解功能
- Struts2的注解功能
- Struts2的注解功能
- Struts2的注解功能
- 【转】Struts2的注解功能
- 第一次使用Struts2的注解功能
- 移动网络如何成为生活平台?
- php连接mysql 内存占用的测试代码
- 办公达人技能提升之word技能篇
- 一些C++经典程序和头文件总结
- Oracle中nvl函数的用法和作用
- Struts2的注解功能
- 本地连接不见了怎么办(为什么本地连接不见了)
- Linux shell sed心得
- DM8148开发记录 二
- 使用cygwin工具将linux环境中运行的hostapd移植到windows中
- Oracle数据库维护常用的SQL代码示例
- 查看linux系统版本命令
- 从Samples中入门IOS开发(二)------ CURD
- window自动脚本