posts - 22, comments - 32, trackbacks - 0, articles - 71
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

struts2的struts.xml配置文件详解

Posted on 2009-10-12 22:32 为自己代言 阅读(1870) 评论(0)  编辑  收藏

原文:http://blog.csdn.net/jackycc/archive/2009/01/10/3747154.aspx

1struts.xml概述
struts.xml Struts 2的核心配置文件。struts.xml中主要配置Struts项目的一些全局的属性,用户请求和响应Action之间的对应关系,以及配置Action中可能用到的参数,以及处理结果的返回页面。还包括各种拦截器的配置等。

struts.xmlDTDDocument Type Definition描述如下:

<!ELEMENT struts (package|include|bean|constant)*>

<!--

struts标签下可以出现下面标签0次或多次

package:将多个action组织成一个package的方式。

include:用来包含一个配置文件,目的是为了配置文件能够分离。

bean:被容器的框架创建,并注入到框架内部的对象。主要用来关联第三方类库,比如spring,一般应用程序不需要配置。

contant:用来设置Struts2运行的环境。效果等同于在struts.properties中配置,或者web.xml中配置FilterDispatcherinit param

-->

<!ELEMENT package (result-types?, interceptors?, default-interceptor-ref?, default-action-ref?, global-results?, global-exception-mappings?, action*)>

<!--

package标签下可以出现下面标签0次或者1

result-types:用来定义结果类型

interceptors:用来定义拦截器

default-interceptor-ref:为package定义默认使用的拦截器,这个package中所有的action(如果这个action没有设置自己使用的拦截器)都会调用设置的默认拦截器

default-action-ref:这个package默认使用的action

global-results:为这个package设置共通使用的result,对这个package下的所有action都有效

global-exception-mappings:为这个package定义共通的当发生异常的时候,所用到的result,需与global-results结合使用

package标签下可以出现下面标签0次或者多次

action:为这个package定义action信息。

-->

2Bean 配置

struts.xml文件中定义Bean时,通常有以下两个作用:

创建该Bean的实例,将该实例作为Struts 2框架的核心组建使用。

Bean包含的静态方法需要一个值注入。

3.常量配置

Struts2的常量在web.xmlstruts.xmlstruts.properties等多处都可以配置。其加载顺序如下:

l         struts-default.xml:该文件保存在struts2-core-2.0.x.jar文件中。

l         struts-plugin.xml:该文件保存在struts-xxx-2.0.x.jar文件中。

l         struts.xml:这个就不多说了。

l         struts.properties:如上。

l         web.xml:同上。

Struts2中的配置:

3.1

<struts>

       <!-- 通过constant元素配置Struts 2的属性 -->

       <constant name=”struts.custom.i18n.resources” value=”globalMessage”/>

</struts>

与之等效的struts.properties文件配置如下:

#配置国际化文件

struts.custom.i18n.resources= globalMessage

4.包配置

       Struts2框架中核心组件就是Action,拦截器等,Struts2框架使用包来管理Action和拦截器等。每个包就是多个Action、多个拦截器、多哥拦截器应用的集合。

       package元素的属性:

l         name :必填属性,指定该包的名字,此名是该包被其他包应用的Key

l         extends:可选属性,该属性指定该包继承其他包。可继承其他包的action、拦截器、拦截器栈等。

l         namespace:可选属性,指定该包的命名空间。

l         abstract:可选属性,指定该包是否为一个抽象包。抽象包中不能包含Action定义。

4.1

5.命名空间配置

       同一个Web应用有可能需要出现同名的Action,所以Struts2中以命名空间的方式来管理Action。同一个命名空间里不能有同名的Action,不同的命名空间里可以有同名的Action

       Struts2不支持给单独的Action设置命名空间,而是通过包指定namespace属性来为包下面的所有Action指定共同的命名空间。

[]默认命名空间里的Action可以处理任何模式下的Action请求。如上例如果GetBooksbook下没有找到,则会在默认命名空间里找,如果在默认命名空间还找不到就回报错。

6.包含配置

  在实际项目中要配置的信息比较多,通常分成多个配置文件,然后吧它们加载到struts.xml

7.拦截器配置


只有注册用户登录后才能发表评论。


网站导航: