struts.xml配置

struts.xml 是 Struts2 框架的核心配置文件,该文件主要用于配置 Action 和请求的对应关系,以及配置逻辑视图和物理视图(逻辑视图就是在 struts.xml 文件中配置的 <result> 元素,它的 name 属性值就是逻辑视图名;物理视图是指 <result> 元素中配置的结果页面,如 JSP 文件)资源的对应关系。web

存放路径:struts.xml 文件一般放在 Web 应用的 WEB-INF/classes 目录下,在该目录下的 struts.xml 文件能够被 Struts2 框架自动加载。因为 MyEclipse 开发工具在编译时会自动将 src 路径下的 struts.xml 文件编译后放到 WEB-INF/classes 路径下,因此直接将其放到项目的 src 路径下便可。apache

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
    <!--<constant>元素用常量的配置-->
    <constant name="struts.enable.DynamicMethodInvocation" value="false" />
    <constant name="struts.devMode" value="true" />
    <!--<package>元素用于包配置-->
    <package name="default" namespace="/" extends="struts-default">
        <!--配置Action-->
        <action name="index" class="Xxx"/>
            <!--配置Result-->
            <result type="dispatcher">
                <param name="location">/index.jsp</param>
            </result>
        </action>
    </package>
    <!-- <include>元素用于包含配置 -->
    <include file="example.xml"/>
</struts>

● <struts> 元素:是文件的根元素,全部其余元素都放在 <struts></struts> 中。框架

● <constant> 元素:用于进行常量配置。jsp

● <package> 元素:用于进行包配置,在 Struts2 框架中,包用于组织 Action 和拦截器等信息,每一个包都是由零个或多个拦截器以及 Action 所组成的集合。工具

● <include> 元素:用于在一个 struts.xml 配置文件中包含其余的配置文件。post

常量配置

在使用 Struts2 框架开发的项目中,一般须要使用大量的常量,这些常量大多在默认的配置文件中已经配置好,但因为用户的需求不一样,开发的要求也有所不一样,这时可能就须要对这些常量值进行修改,其修改的方法就是在配置文件中对常量进行从新配置。开发工具

一般使用的三种方式:编码

  • 在 struts.xml 文件中使用 <constant> 元素配置常量(经常使用方式)。
  • 在 struts.properties 文件中配置常量。
  • 在 web.xml 文件中经过 <init-param> 元素配置常量。

在 struts.xml 文件中经过 <constant.../> 元素配置常量时,须要指定两个必填的属性 name 和 value。其中 name 属性用于指定常量的常量名,value 属性用于指定常量的常量值。spa

<!-- 配置了常量 struts.i18n.encoding 和 struts.devMode。
   其中 struts.i18n.encoding 用于指定 Struts2 应用程序的默认编码集为 UTF-8,struts.devMode 用于指定项目使用的是开发模式。
--> <struts> <!--设置默认编码集为UTF-8--> <constant name="struts.il8n.encoding" value="UTF-8" /> <!--设置使用开发模式--> <constant name="struts.devMode" value="true" /> </struts>

Struts2 所支持的常量数量不少,在 struts2-core-2.3.37.jar 压缩文件的 org/apache/struts2 路径下有一个 default.properties 文件,该文件里为 Struts2 的全部常量都指定了默认值。插件

除了能够经过上述的三种方式配置常量之外,在 Struts2 内置的一些配置文件中也有对常量的配置。

所以,若是在多个文件中配置了同一个 Struts2 常量,则 Struts2 框架加载常量是有必定顺序的,一般的搜索顺序以下。

1)default.properties:该文件保存在 struts2-core-2.3.37.jar 中的 org.apache.struts2 包中。 2)struts-default.xml:该文件保存在 struts2-core-2.3.37.jar 文件中。 3)struts-plugin.xml:该文件保存在 struts-Xxx-2.3.37.jar 等 Struts2 插件 JAR 包中。 4)struts.xml:该文件是 Web 应用自身的 Struts2 配置文件。 5)struts.properties:该文件是 Web 应用默认的 Struts2 配置文件。 6)web.xml:该文件是 Web 应用的配置文件。

上面指定了 Struts2 框架搜索 Struts2 常量的顺序,须要注意的是,若是在多个文件中配置了同一个 Struts2 常量,则后一个文件中配置的常量值会覆盖前面文件中配置的常量值。

包配置

在 Struts2 框架中,包用于管理 Action 和拦截器,每一个包就是多个 Action、多个拦截器、多个拦截器引用的集合。

在 struts.xml 文件中,使用 <package> 元素定义包配置,每一个 <package> 元素都定义了一个包配置。

<package name="default" namespace="/" extends="struts-default"> ... </package>

属性:

  • name:必填属性,用于指定该包的名称(该名称在配置文件中必须是惟一的),此名称是该包被其余包引用的 Key。
  • namespace:可选属性,用于定义该包的命名空间。
  • extends:可选属性,用于指定该包继承自其余包。其属性值必须是另外一个包的 name 属性值,但该属性值一般都设置为 struts-default,这样该包中的 Action 就具备了 Struts2 框架默认的拦截器等功能。

包含配置

Struts2 容许将一个配置文件分解成多个配置文件,从而提升配置文件的可读性,<include> 元素用于在一个 struts.xml 配置文件中包含其余的配置文件。

Struts2 默认只加载 WEB-INF/classes 下的 struts.xml 文件,一旦经过多个 XML 文件配置 Action,就必须经过 <include> 元素包含其余配置文件。

在 struts.xml 文件中包含配置:

<struts>
    <!--不指定路径,默认在src下时的方式-->
    <include file="struts-post.xml"/>
    <include file="struts-user.xml"/>
    <include file="struts-dept.xml"/>
    <!--配置文件在具体包中时的方式-->
    <include file="com/mengma/action/struts-product.xml"/>
</struts>

struts.xml 文件经过 <include> 元素包含了四个配置文件,其中 file 属性用于指定被包含配置文件的名称。若是被包含的配置文件在 src 路径下,则直接指定文件名便可,若是被包含的配置文件在具体的包中,则须要引入被包含文件的包路径。

须要注意的是,每个被包含的配置文件都是标准的 Struts2 配置文件,一样包含 DTD 信息、Struts2 配置文件的根元素等信息。因为 struts.xml 文件包含了其余的配置文件,因此在 Struts2 框架自动加载 struts.xml 文件时,就会完成全部配置信息的加载。

相关文章
相关标签/搜索