Will do as will say
分类: 系统运维
2012-12-18 08:51:24
1、 web.xml配置文件:Web应用项目都需要一个web.xml配置文件,该文件负责对整个项目进行配置。
2、 struts.xml配置文件:在Struts 2的框架结构中,struts.xml文件具有重要的位置,所有的用户请求被Struts 2核心控制器所截获,然后ActionProxy通过configuration Manager(struts.xml)询问框架的配置文件,来查找相应的处理Action。
struts.xml文件作用类似于 Struts 2框架的地图。在默认情况下,Struts 2框架将自动加载在WEB-INF/classes路径下的struts.xml文件中。
定义了一个默认的包”default”,该包继承了 struts-default包,struts-default的位置在,struts2-core-2.0.11.jar文件中存在一个struts-default.xml文件。struts-default.xml文件定义了包空间、拦截器、拦截栈定义等。
3、 常量配置:定义常量采用4中方式:
A、 在web.xml中配置
B、 在struts.xml中配置
C、 在struts-default.xml和其他struts-plugin.xml文件中
D、 在struts.properties中配置。
在Strtus中搜索常量的顺序为:struts-default.xml 、struts-plugin.xml、struts.xml、struts.properies、web.xml,若重复定义常量,后面的常量会覆盖前面的常量。
一般推荐 在struts.xml中配置常量,便于管理。或者其他xml文件中,使用include包含到struts,xml中配置常量
4、 包配置:Struts 2使用包来管理Action、拦截器等核心组件。包就是Struts中多个Action、多个拦截器、多个拦截器引用组成的集合。
注意:配置包时,必须制定包的name 属性,这个属性就是应用该包的key,同时还可以制定包的extends属性,该包属性为可选;extends属性必须是另外一个包的name属性,制定extends属性说明该包继承了其他包,同时继承了其他包中的Action、拦截器和拦截栈等配置。
Struts 2中还提供了一种抽象包,抽象包指的是该包不能包含的Action定义,但是可以定义Bean等其他属性,若地故意一个包为抽象包,则需要制定该包的abstract属性为 true ,每个package 元素的属性:
A、 name 必填属性
B、 extends可选属性,该属性指定该包继承其他包,同时继承其他包中的Action、拦截器等配置。
C、 namespace:可选属性,该属性定义该包的命名空间,指定用户请求的URL目录路径。
D、 abstract:可选属性,该属性为 true 时,说明该包是抽象包,不能定义Action属性,默认为false.
5、 命名空间配置:
Struts2 框架的命名空间配置为开发者提供一个类似于文件目录的管理方式,可以再不同的命名空间中定义相同的Action,这样提高了系统的灵活性。
某个包也可以显示指定命名空间为根目录,可以使用 namespace=”/” 来实现,Struts 2寻找一个Action的搜索顺序:
查找指定命名空间下的Action,若找到则执行
若找不到,则转入到默认命名空间中查找Action,找到则执行
若找不到Action,Struts 2报错。
6、 包含配置
Struts 2的配置文件提供了include包含配置,开发者可以使用自己自定义的*.xml配置文件,并使用该文件进行调试,然后使用include包含到struts.xml配置文件中,完成一个项目的Struts2框架配置。
Include元素使得框架能应用 divide and conquer 来配置文件,被includede每个配置文件必须和struts有一样的格式,一个大的项目可以采用这样的方式来组织程序模块。
7、 Bean配置
Struts 2的特点之一就是高可扩展性。核心组件采用IoC(控制反转)管理。开发者可以编写自己的核心组件来替换或者扩展Struts默认的组件。
开发者如果开发的自己的核心组件,需要开发组件的实现类,并修改Struts2的配置文件,来替换或者扩展Struts 2框架的组件定义,并将该组件的实现类部署在IoC容器中,Struts2框架的struts-default.xml文件中定义了大量的核心组件,使用Bean元素来描述。
在配置中定义Bean的两个原因:
1)、替换和扩展某个Bean,作为自己开发的核心Bean使用。
定义自己的Bean->
2)、Bean包含的静态方法的注入。
配置该类Bean,需要制定static=”true” 例如:
定义核心bean-->
该定义说明不能创建该类的实例,却能接受框架的常量。
配置中的Bean元素定义属性:
class 为必填属性。指定该Bean的实现类。
type 为可选属性。指定一个struts2接口,既定义一个Struts2的规范,
name 为可选属性。指定了Bean实例的名字,但是相同type类型的多个Bean,name不能相同。
scope 可选属性。定于Bean的作用范围:default,singleton,request,session ,thread.
Static 可选属性。指定该Bean是否指定了静态方法注入,一般情况,如果指定了type属性,则不能在指定为true.
optional: 可选属性,指定该Bean 是否是一个可选的Bean.
对于一般的开发者,根本没有必要重新替换或者扩展Struts2的核心组件,也没有必要在配置文件中定义Bean,Strut默认的Bean配置已经完全满足开发的需求。
8、 拦截器的配置
拦截器是Struts2的核心之一。
作用:在执行Action处理用户请求之前或者之后,这姓拦截器来进行某些操作,例如,判断用户身份是否合法,这样,在Action中就不用处理和判断用户身份的问题,将这些问题交给拦截器来管理。
这种设计思想就是AOP(面向切面编程)的编程思想。
所谓拦截器栈就是一个大的拦截器。多个拦截器的组合。
9、 配置struts.properties文件
Struts2一般包含两个配置文件:struts.xml文件和struts.properties文件,struts.xml定义了包,包的命名空间,Action,拦截器和拦截器栈等信息,主要用于Struts2框架的Action映射。
struts.properties是一个属性的定义,定义了struts2框架中的大量属性值,常量。开发者通过修改struts.properties内容来修改Struts2框架的参数。是一个标准的Key-Value格式的文本文件。Key表示Struts2框架的属性名称,对应的Value就是设置的参数值。例如:
struts.custom.i18n.resources= globalMessages
通常放在WEB应用的WEB-INF/classes路径下,实际上,只要将该文件放在Web应用的ClASSPATH路径下,Struts2框架就可以加载该文件。内容均可在struts.xml中以
struts.properties文件常见的属性名称以及含义:
10、配置通配符
在配置文件中使用通配符,可以将相似的Action定义在一起,管理起来相对简洁。
11、Struts2的零配置
零配置的思路就是元素属性可以通过规则和注释来表达。
在Action中,不就可以使用注释@result,还可以注释命名空间@Namespace来指定该Action所属的命名空间。