### Struts配置文件详解
#### 一、概述
Struts框架是Java Web开发中的一个重要工具,它使用MVC(Model-View-Controller)设计模式来组织应用逻辑,从而提高代码的可维护性和可读性。Struts框架的核心是通过两个XML配置文件进行配置管理:`web.xml` 和 `struts-config.xml`。这两个文件共同构成了Struts应用程序的配置基础。
#### 二、web.xml
`web.xml` 是一个标准的Servlet容器配置文件,用于配置所有的Web应用程序。在这个文件中,可以配置Struts的监听器、过滤器以及其他与Web应用相关的配置。例如,可以通过`web.xml`配置Struts的核心控制器`ActionServlet`,这是Struts框架的关键组件之一。
#### 三、struts-config.xml
`struts-config.xml` 是Struts专用的配置文件,用于定义Struts框架特有的配置信息。这个文件的结构和内容是由DTD(Document Type Definition)文件定义的,DTD文件规定了配置文件的格式和各个元素的含义。在Struts 1.x版本中,`struts-config.xml`文件通常包含了数据源、表单验证、异常处理、转发等配置信息。
#### 四、struts-config.xml详细解析
`struts-config.xml` 文件的开头通常会包含XML声明和DOCTYPE声明,例如:
```xml
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN" "http://struts.apache.org/dtds/struts-config_1_1.dtd">
```
这里指定了该配置文件遵循的DTD版本。DTD文件定义了配置文件的结构和各个元素的含义。
- **DTD版本**: 在上面的例子中,使用的是Struts 1.1版本的DTD。不同的DTD版本可能会有不同的元素定义,因此在创建或修改配置文件时,需要确保使用正确的DTD版本。
接下来,我们详细介绍`struts-config.xml`文件中的各个关键元素及其用途。
#### 五、struts-config.xml的关键元素
**1. data-sources元素**
`data-sources` 元素用来配置应用程序所需的数据源。Java提供了`javax.sql.DataSource`接口,所有数据源都必须实现这个接口。在Struts配置文件中,可以这样配置数据源:
```xml
<data-sources>
<data-source type="org.apache.commons.dbcp.BasicDataSource">
<!-- 数据源的具体配置 -->
</data-source>
</data-sources>
```
**2. form-beans元素**
`form-beans` 元素用于配置表单验证的类。这个元素包含以下几个属性:
- `name`: ActionFormBean的唯一标识。
- `type`: ActionForm的完整类名。
例如:
```xml
<form-beans>
<form-bean name="Login" type="com.cn.login.LoginForm">
</form-bean>
</form-beans>
```
**3. global-exceptions元素**
`global-exceptions` 元素用于配置全局异常处理。它通过`exception`子元素来定义Java异常与异常处理器之间的映射。这个元素的属性包括:
- `type`: 指定所需处理的异常类的名字。
- `path`: 异常发生时的转发路径。
- `key`: 在ResourceBundle中描述该异常的消息键。
示例配置:
```xml
<global-exceptions>
<exception key="global.error.invalidlogin" path="/error.jsp" type="com.hn.tree.InvalidLoginException" />
</global-exceptions>
```
**4. global-forwards元素**
`global-forwards` 元素用于声明全局的转发关系。它有以下属性:
- `path`: 转发的URL路径。
- `name`: 转发的名称。
示例配置:
```xml
<global-forwards>
<forward name="success" path="/success.jsp" />
</global-forwards>
```
总结来说,`struts-config.xml` 是Struts框架的核心配置文件之一,通过合理配置这些元素,开发者可以更好地控制Struts应用的行为和流程。正确理解和掌握这些配置选项对于高效地使用Struts框架至关重要。