Chinaunix首页 | 论坛 | 博客
  • 博客访问: 342197
  • 博文数量: 76
  • 博客积分: 2790
  • 博客等级: 少校
  • 技术积分: 882
  • 用 户 组: 普通用户
  • 注册时间: 2008-08-13 09:15
个人简介

Will do as will say

文章分类

全部博文(76)

文章存档

2013年(7)

2012年(13)

2011年(2)

2009年(2)

2008年(52)

我的朋友

分类: 系统运维

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.xmlstruts.xmlstruts.properiesweb.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,找到则执行

    若找不到ActionStruts 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所属的命名空间。

阅读(531) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~