- 浏览: 45828 次
- 性别:
- 来自: 西安
文章分类
最新评论
struts-config.xml是Struts的主要配置文件,在该文件中,可以配置数据源、form-bean、action和plug-in(插件)和资源文件的信息。其文件主要结构如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://struts.apache.org/dtds/struts-config_1_2.dtd">
<data-sources>
<data-source>
</data-source>
</data-sources>
<form-beans>
<form-bean / >
</form-beans>
<global-forwards>
<forward / >
</global-forwards>
<action-mappings>
<action / >
</action-mappings>
<controller / >
<message-resources / >
<plug-in />
</struts-config>
以上各元素必须是按照这个顺序的,若开发人员打乱顺序,很可能引起Struts容器启动时出错。
当然struts-config.xml还有<display-name />、<description />和<icon />子元素,因为它们用得很少,在此不再赘述。只是讲述常用的子元素的配置。
1. data-sources
本节讲述子元素data-sources的配置,该元素可以配置一个或多个data-source元素,即数据源元素,可以通过<set-property>设置driverClass、url、user、password等属性。配置实例如下:
<data-source>
<!-- 所用的JDBC驱动类,必须-->
<set-property property="driverClass" value="com.mysql.jdbc.Driver"/>
<!-- 所用的JDBC的URL,必须-->
<set-property property="url" value="jdbc:mysql://localhost/test"/>
<!-- 同时打开的最小连结数,缺省值为1,可选-->
<set-property property="minCount" value="1"/>
<!-- 同时打开的最大连结数,缺省值为2,可选-->
<set-property property="maxCount" value="5"/>
<!-- 连结到数据库的用户名,必须-->
<set-property property="user" value="root"/>
<!-- 连结到数据库的密码,必须-->
<set-property property="password" value="root"/>
</data-source>
开发人员还可以设置Key(绑定在ServletContext上的DataSource实例的索引键,若不设定则缺省为Action.DATA_SOURCE_KEY,如果在应用程序中有多于一个的DataSource,则必须设置Key的值)、Description(关于DataSource的描述信息)、ReadOnly(如果设为true,则表示该连结是只读的,缺省为false)、LoginTimeout(创建连结的最大允许时间,以秒为单位)和AutoCommit(如果为true,则每次execute之后会强制回滚。缺省为true)属性。
在实际项目中,例如在Hibernate + Struts构建的系统中,一般使用Hibernate的hibernate.cfg.xml文件来配置数据源的信息。而在Hibernate + Struts + Spring构建的系统中,一般使用spring的配置文件(eg. applicationContext.xml)来配置数据源的信息。
2. form-beans
子元素form-beans用来配置绑定到Action的各个FormBean的实例。每个FormBean实例用form-bans的子元素form-bean来定义。form-bean又分普通的FormBan和动态FormBean。
(1)普通form-bean
普通FormBean需要定义一个JavaBean类,在form-bean元素中指定该类。普通form-bean元素的定义格式如下:
<form-bean name="FormBean的名称" type="FormBean对应JavaBean类的全路径"/>
Eg. <form-bean name="UserForm"
type="com.amigo.struts.form.user.UserForm" />
对应的FormBean类一般是继承ActionForm类,例如下面的例子定义了一个UserForm,它具有userName和password两个属性。该类的代码如下:
package com.amigo.struts.form.user;
import org.apache.struts.action.ActionForm;
public class UserForm extends ActionForm {
private static final long serialVersionUID = 1L;
/** 用户名.*/
private String userName;
/** 密码. */
private String password;
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
}
(2)动态form-bean
动态form-bean不需要定义对应的javabean类,其元素都在struts-config.xml中定义。其type为:org.apache.struts.validator.DynaValidatorForm。下面的动态FormBean定义了userName和password属性,配置如下:
<form-bean name="UserForm" type="org.apache.struts.validator.DynaValidatorForm">
<form-property name="userName" type="java.lang.String"/>
<form-property name="password" type="java.lang.String"/>
</form-bean>
3 global-forwards
global-forwards用于配置全局转发,struts首先会在<action-mappings>元素中找对应的<forward>,若找不到,则到全局转发配置中找。它包含0个或多个<forward/>元素,格式如下所示:
<forward name="唯一的名称" path="指向资源的相对路径"/>
Eg.
<global-forwards>
<forward name="failed" path="/error.jsp" />
<forward name="success" path="/ success.jsp" />
</global-forwards>
<forward/>元素还有一个redirect属性,其默认值为false,如果redirect设为true的时候,则用HttpServletResponse.sendRedirect()方法,否则用RequestDispatcher.forward()方法,缺省为false。
4 action-mappings
该元素用于将Action元素定义到ActionServlet类中,它含有0到多个<action/>元素,其格式如下:
<action-mappings>
<action path="Action请求的相对路径"
type="该Action的对应类的全路径"
name="该Action绑定的FormBean"
<forward name="指定处理相应请求所对应的地址" path="相对路径"/>
</action>
</action-mappings>
每个action子元素可包含一个或多个forward子元素。除了path、type和name属性外,action还具有如下属性:
l scope:指定ActionForm Bean的作用域(session和request),缺省为session。(可选);
l input:当Bean发生错误时返回的路径(可选);
l classname:指定一个调用这个Action类的ActionMapping类的全名。缺省用org.apache.struts.action.ActionMapping(可选);
l include:如果没有forward的时候,它起forward的作用(可选);
l validate:若为true,则会调用ActionForm的validate()方法,否则不调用,缺省为true(可选)。
forward属性也是可选的。
action元素定义举例如下:
Eg1.
<action-mappings>
<action
path="/userAction"
type="com.amigo.struts.action.UserAction"
name="UserForm"
scope="request"
validate = "false"
parameter="method" >
<forward name="error" path="/user/error.jsp" />
<forward name="success" path="/user/success.jsp"/>
<forward name="add" path="/user/addUser.jsp"/>
<forward name="update" path="/user/updateUser.jsp"/>
<forward name="list" path="/user/userList.jsp"/>
</action>
</action-mappings>
Eg2. 有input属性的例子:
<action-mappings>
<action path="/calcAction"
type="com.amigo.struts.action.CalcAction"
name="CalcForm"
scope="request"
validate="true"
input="/index.jsp">
<forward name="success" path="/success.jsp"/>
<forward name="error" path="/error.jsp"/>
</action>
</action-mappings>
Eg3. 仅有JSP的action元素:
<action path="/menu"
parameter="/default.jsp"
type="org.apache.struts.actions.ForwardAction" />
首先,ActionServlet接到请求后调用ForwardAction的execute()方法,execute()根据配置的parameter属性值来forward到那个URI。
这样做的效果是:没有任何form被实例化,比较现实的情形可能是form在request更高级别的范围中定义;或者这个action被用作在应用程序编译好后充当系统参数,只需要更改这个配置文件而不需要重新编译系统。
5. message-resources
该元素用来定义资源文件,格式如下:
<message-resources parameter="给定资源文件的全名"
classname="定义处理消息资源的类名的全名"
factory="定义MessageResourcesFactory类的全名"
key="定义绑定在这个资源包中的ServletContext的属性主键"
null=" 如果为true,则找不到消息key时,则返回null "/>
message-resources的各属性中,只有parameter是必选的,其余都为可选,classname属性默认为:org.apache.struts.config.MessageResourcesConfig,factory属性默认为:org.apache.struts.util.property.MessageResourcesFacotry,key属性默认为:Action.MESSAGES_KEY,null属性默认为:true。
举例如下,在struts配置文件中添加如下信息:
Eg1. <message-resources parameter="ApplicationResources" />
Eg2. <message-resources
parameter="com.amigo.struts. ApplicationResources "
null="false"/>
6. plug-in
该元素用于定义插件,可定义0到多个插件元素,最常见的plug-in为Struts的验证的插件,配置举例如下:
Eg1. Struts的验证的plug-in:
<plug-in className="org.apache.struts.validator.ValidatorPlugIn">
<set-property property="pathnames"
value="/WEB-INF/validator-rules.xml, /WEB-INF/manager/validation.xml" />
<set-property property="stopOnFirstError" value="false" />
</plug-in>
Eg2. Spring提供的载入插件配置:
<plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">
<set-property property="contextConfigLocation"
value="/WEB-INF/applicationContext.xml, /WEB-INF/action-servlet.xml"/>
</plug-in>
7. 完整配置实例
本小节举例说明struts-config.xml文件的配置:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://struts.apache.org/dtds/struts-config_1_2.dtd">
<struts-config>
<data-sources />
<form-beans>
<form-bean name="UserForm"
type="com.amigo.struts.form.user.UserForm" />
</form-beans>
<global-exceptions />
<global-forwards />
<action-mappings>
<action
path="/userAction"
type="com.amigo.struts.action.UserAction"
name="UserForm"
scope="request"
validate = "false"
parameter="method" >
<forward name="error" path="/user/error.jsp" />
<forward name="success" path="/user/success.jsp"/>
<forward name="add" path="/user/addUser.jsp"/>
<forward name="update" path="/user/updateUser.jsp"/>
<forward name="list" path="/user/userList.jsp"/>
</action>
</action-mappings>
<message-resources parameter="com.amigo.struts. ApplicationResources " />
<plug-in className="org.apache.struts.validator.ValidatorPlugIn">
<set-property property="pathnames"
value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml"/>
<set-property property="stopOnFirstError" value="false" />
</plug-in>
</struts-config>
发表评论
-
Java 验证码 图片验证码示例
2015-10-24 10:42 716package test.web.home.servlet; ... -
内容抓取匹配例子-中文数字转数字
2015-10-20 17:24 734package test; import java. ... -
Struts与表现层技术的结合-JSTL EL表达式语言
2010-05-27 11:40 2361第9章 Struts与表现层技 ... -
spring 中加载xml配置文件的方式
2010-05-15 16:35 859spring 中加载xml配置文件的方式,好像有3种, xm ... -
如何创建Dynamic Web Project
2009-08-12 12:00 7560Eclipse创建DynamicWeb Project: ... -
java设计模式
2009-08-12 09:47 623Env 单例模式简单示例: package co ...
相关推荐
Struts1.2驱动包是Java Web开发中一个重要的组件,它是Apache Struts框架的特定版本,用于支持基于Model-View-Controller (MVC)设计模式的应用程序开发。Struts1.2因其稳定性和广泛的功能集而在过去备受推崇,尤其在...
这个压缩包文件"Struts 1.2 API详细讲解.rar"显然包含了对Struts 1.2 API的深入解析,对于初学者来说是一份宝贵的参考资料。 在Struts 1.2 API中,主要包括以下几个核心组件和接口: 1. **ActionServlet**:这是...
标题与描述均指向了对Struts 1.2配置文件的深入解析,特别是web.xml与struts-config.xml这两个核心配置文件。以下是对这些关键知识点的详细解读: ### 一、Web配置文件web.xml #### 1. **Servlet与Servlet Mapping...
这个文档包含了Struts1.2的所有公共接口、类和方法的详细说明,是开发者日常编码的重要参考资料。通过查阅API,你可以快速找到特定类的功能、构造函数、方法签名以及使用示例,从而提高开发效率。 在实际整合过程中...
Struts1.2通过配置struts-config.xml文件来定义这些行为。 其次,Spring2.5框架的依赖注入(DI)特性允许开发者解耦组件,通过容器管理对象的生命周期和依赖关系。同时,Spring的AOP模块支持切面编程,可以实现事务...
Struts1.2中文学习手册是一本面向初学者的指南,它涵盖了Struts1.2的基础知识、配置、控制器、模型、视图以及动作和业务逻辑的整合。 首先,手册会介绍Struts1.2的核心概念,包括Action类、Form Bean和Tiles布局。...
这通常是Struts1.2的二进制发行版,包含了运行Struts1.2应用程序所需的全部类库和配置文件。解压后,你可以找到以下关键组件: 1. `lib`目录:包含各种依赖的JAR文件,如Struts的核心库、Servlet API、JSP API等,...
3. **配置文件**:Struts1.2的配置主要包括struts-config.xml和web.xml。前者定义了Action类、Form Beans、Action Mapping以及Result Maps,后者用于部署描述符,配置Struts的初始化参数。 4. **Form Beans**:Form...
4. **配置方式**:Struts2的配置文件更加简洁,可以使用XML或注解,而Struts1.2主要依赖XML配置。 5. **Action与结果**:在Struts2中,Action类不再负责视图的跳转,而是通过返回一个结果名,由框架决定跳转的页面...
使用Struts1.2时,开发者需要在项目的`WEB-INF/lib`目录下添加这些jar文件,然后在Web应用的配置文件中指定Struts配置,这样就可以开始构建基于Struts1.2的应用了。然而,需要注意的是,尽管Struts1.2在当时非常流行...
这篇博客文章可能详细探讨了如何在Struts1.2中处理这类情况。 首先,让我们来了解Struts1.2中的表单提交流程。当用户在Web页面上填写表单并点击提交按钮时,浏览器会发送一个HTTP请求到服务器。在Struts1.2中,这个...
Struts 1.2驱动包是Apache软件基金会开发的一个基于MVC(Model-...在学习和使用Struts 1.2时,开发者应关注其核心组件的工作原理,以及如何通过配置文件和编程来实现灵活的控制流,这有助于深入理解Web应用的架构设计。
**Struts 1.2配置文件解析与管理** Struts的配置文件主要包括`struts-config.xml`,它定义了Action、Forward、Form Bean等组件。在初始化过程中,`configDigester`使用SAX解析技术解析这些配置文件,生成...
### Struts1.2配置详解 #### 1. `struts-config.xml` 文件 `struts-config.xml` 是Struts1.2的核心配置文件,它定义了应用程序的行为,包括Action类、表单 Beans、数据源、国际化资源等。以下是一些关键配置元素: ...
3. **配置文件**:struts-config.xml是Struts的核心配置文件,定义了Action、ActionMapping、Forward等,用于指定请求处理流程。 4. **Tiles框架**:提供了一种模块化页面布局的方式,可以组合多个小的页面组件来...
1. **配置Struts1.2**: 在开始文件上传之前,我们需要在Struts的配置文件`struts-config.xml`中进行相应的配置。这包括声明一个Action,该Action将处理文件上传的请求。你需要定义一个`<action>`标签,指定Action...
本文将详细介绍Struts1.2中的拦截器使用以及相关的插件。 首先,我们需要理解拦截器的工作原理。拦截器在Action调用前后执行,形成一个拦截链。当一个请求到达时,Struts框架会按照配置的顺序依次调用这些拦截器,...
3. **配置文件**:Struts1.2的配置主要涉及两个文件:struts-config.xml和web.xml。struts-config.xml定义了Action及其与视图的映射、Form Beans、DataSources等。web.xml用于配置Servlet和Filter,以及Struts的初始...