`

Struts配置文件详解(2)

阅读更多
关于 Struts中 struts-config.xml文件的攻略(简)

这里我们将开始讨论Jakarta Struts中的核心文件struts-config.xml文件。在使用Struts组件的时候我们都需要用到这个文件。

我们可以通过配置文件来配置各种组件,例如数据源DataSource,表单类FormBean,全局异常GlobalException,全局转向GlobalForwars,行为映射ActionMappings,控制器Controller,消息资源MessageResources,以及插件Plugins。

首先大略看一下一个struts-config.xml配置文件。下文中介绍了最高层级top-level的元素项。

<?xml version="1.0" encoding="ISO-8859-1" ?>

<!DOCTYPE struts-config PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 1.1//EN"
"http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">

<struts-config>

  <data-sources>   <!--数据源的配置-->
    <data-source
      type="org.apache.commons.dbcp.BasicDataSource">
      <set-property property="driverClassName"
        value="com.mysql.jdbc.Driver" />
      <set-property property="url"
        value="jdbc:mysql://localhost/stocks" />
      <set-property property="username"
        value="YOUR USERNAME" />
      <set-property property="password"
        value="YOUR PASSWORD" />
    </data-source>
  </data-sources>
  <form-beans> <!--表单类的配置-->
    <form-bean name="registrationForm"
      type="com.wrox.RegistrationForm"/>
  </form-beans>

  <global-exceptions>  <!--全局异常的配置-->
    <exception
      key="com.wrox.error"
      type="java.io.Exception"
      handler="com.wrox.ExceptionHandler">
  </global-exceptions>

  <global-forwards>  <!--全局转向的配置-->
    <forward name="registration" path="/registration.jsp"/>
  </global-forwards>

  <action-mappings> <!--行为映射的配置-->
    <action path="/saveRegistration"
      type="com.wrox.SaveRegistrationAction"
      name="registrationForm"
      scope="request"
      input="registration"/>
  </action-mappings>


  <controller> <!--控制器的配置-->
    <set-property property="inputForward" value="true"/>
  </controller>

  <!--消息资源的配置-->
  <message-resources
    parameter="com.wrox.ApplicationResources"/>

  <!--插件的配置-->
  <plug-in className="com.wrox.plugins.ModuleConfigVerifier"/>

</struts-config>

在这个配置文件中,每一组元素的先后排列次序是很重要的。换句话说就是在struts-config.xml文件中这些元素都须依照如此的先后次序进行排列。如果排列的次序打乱的话,Struts会在启动时抛出异常。

添加数据原 Adding a DataSource

首先我们需要进行配置的就是数据源。配置数据源有2中方式,一种采用自己开发的组件直接操作数据源实例。另一种方法就是我们将在这里进行演示的方法,通过修改struts配置文件来完成数据源的配置工作。

当我们开始描述数据源实例的时候,我们必须使用<data-sources>的元素项。这个元素项中可以包括多个<data-source>的子元素项,这样可以用来描述每一个数据源实例。在下面的代码中描述了<data-sources>的子元素项中包含了一个单独的<data-source>的子元素项。

<data-sources> 
  <data-source
    type="org.apache.commons.dbcp.BasicDataSource">
    <set-property property="driverClassName"
      value="com.mysql.jdbc.Driver" />
    <set-property property="url"
      value="jdbc:mysql://localhost/stocks" />
    <set-property property="username"
      value="YOUR USERNAME" />
    <set-property property="password"
      value="YOUR PASSWORD" />
  </data-source>
</data-sources>

<data-source>条目的属性

type 这是用来定义含有完整命名控件的DataSource对象。这个类必须是扩展javax.sql.DataSource,并且能进行<set-property>的子元素项的设置操作。关于DB的pool的设置将安排另外的文档进行编写

className 用于设定配置类所用。详细描述这里省略。

key 这是用来定义多数据源的时候来使用。
例如采用多数据源设定的时候代码如下:
<data-sources>
   <data-source key="A" type="org.apache.commons.dbcp.BasicDataSource">
      ... properties as before ...
   </data-source>
   <data-source key="B" type="org.apache.commons.dbcp.BasicDataSource">
      ... properties as before ...
   </data-source>
   ...
</data-sources>

而我们在代码中使用的时候可以如下:
   ...
   try {
      dataSourceA = getDataSource(request, "A");
      dataSourceB = getDataSource(request, "B");
   ...

添加表单类的定义 Adding FormBean Definitions

<form-bean> 子元素项通常用户描述一个表单类的实例。它的构造语法如下:

<form-beans>
  <form-bean name="name used to uniquely identify a FormBean"
    type="fully qualified class name of FormBean" />
</form-beans>

首先这里注意的是<form-bean>必须嵌套在<form-beans>之中,

name 是表示唯一的能识别的bean名称。这个值通常用于行为映射并绑定一个表单类到一个行为上。

type 则是类文件的完整命空间及文件名称。

例如
<form-beans>
  <form-bean name="lookupForm"
    type="wrox.LookupForm" />
</form-beans>


添加全局异常处理 Adding Global Exceptions

全局异常处理子元素项通常可以定义多个异常处理的子元素项。语法结构如下:

<global-exceptions>
  <exception key="Key" type="Exception Type"
    handler="Exception Handler">
</global-exceptions>

实例如下:
<global-exceptions>
  <exception
    key="wrox"
    type="ch15.WroxException"
    handler="ch15.WroxExceptionHandler">
</global-exceptions>


添加全局转向 Adding Global Forwards

在<global-forwards>中可以定义多个<forward>子元素项,语法构造如下:
<global-forwards>
  <forward name="unique target identifier"
    path="context-relative path to targetted resource "/>
</global-forwards>

实例如下:
<global-forwards>
  <forward name="success" path="/welcome.jsp"/>
  <forward name="failure" path="/index.jsp"/>
</global-forwards>

添加行为 Adding Actions
<Action-mappings>子元素项可以定义多个<action>子元素项。它就好比是<action>的一个容器,因此我们将着重讨论每一个<action>的子元素项。

<action>子元素项通常用来描述一个正对ActionServlet的行为的实例。它的语法构造如下:

<action-mappings>

  <action
    path="context-relative path mapping action to a request"
    type="fully qualified class name of the Action class"
    name="the name of the form bean bound to this Action">
    <forward name="forwardname1" path="context-relative path"/>
    <forward name="forwardname2" path="context-relative path"/>
  </action>

</action-mappings>

注意在上面的部分代码中,包含有2个<forward>子元素项,而这些<forward>仅能被当前的<action>所引用。

实例代码如下:
<action-mappings>

  <action path="/lookupAction"
    type="wrox.LookupAction"
    name="LookupForm"
    scope="request"
    validate="true"
    input="/index.jsp">
    <forward name="success" path="/quote.jsp"/>
    <forward name="faliue" path="/index.jsp"/>
  </action>

</action-mappings>

添加控制器 Adding Controller Elements

控制器元素项用于定义一个控制配置类,通常用于应用服务运行模块进行配置所用。实例如下:

<controller
  processorClass="ch04.WroxRequestProcessor"
  nocache="true" />

添加消息资源 Adding Message Resources

添加插件 Adding Plugins
<plug-in>元素项通常用于添加插件至struts控制器中。struts的插件用于分配资源或者数据库预备连接资源或者是JNDI资源。语法结构如下:
<plug-in className="Fully qualified Plugin class name"/>

实例如下

<plug-in className="ch04.WroxPlugin"/>


消息资源对象用来描述MessageResource对象,语法结构如下:
<message-resources
  parameter="configuration parameter"
  key="main" />

是列代码如下:
<message-resources
  parameter="ch15.MainResources"
  key="main" />
分享到:
评论

相关推荐

    Struts配置文件详解

    本文将深入探讨Struts配置文件的细节,包括`web.xml`和`struts-config.xml`。 首先,`web.xml`是每个Web应用程序的标准部署描述符,它是基于XML的文件,用于向Web容器(如Tomcat)提供关于应用如何运行的信息。`web...

    struts核心配置文件详解

    Struts应用的配置 多应用模块的配置 Struts配置文件 多应用模块的划分有助于应用的并行开发,提高效率

    Struts配置文件详解.

    Struts配置文件是Struts框架的核心组成部分,它定义了应用程序的行为和组件间的交互方式。配置文件基于XML格式,使得开发者可以灵活地配置ActionForm、Action、Forward等元素,以实现业务逻辑与视图的分离,增强应用...

    Struts配置文件详解.pdf

    ### Struts配置文件详解 #### 一、Struts配置文件的重要性与作用 Struts框架作为Java Web开发领域中的一种流行MVC(Model-View-Controller)框架,它提供了一种结构化的方式来构建Web应用程序。在Struts框架中,`...

    JSP Struts配置文件详解

    ### JSP Struts配置文件详解 #### 一、概述 在深入探讨`struts-config.xml`文件中的各项配置之前,我们需要了解Struts框架的基本概念及其配置文件的重要性。Struts是基于MVC(Model-View-Controller)设计模式的...

    Struts2配置详解

    在深入了解Struts2的配置细节之前,我们先来简要概述一下Struts2框架的核心特点及其配置文件的基本结构。Struts2是一个基于MVC(Model-View-Controller)设计模式的Java Web应用开发框架。它通过一系列的配置文件来...

    Struts 配置文件详解

    ### Struts配置文件详解 #### 一、概述 Struts框架是Java Web开发中的一个重要工具,它使用MVC(Model-View-Controller)设计模式来组织应用逻辑,从而提高代码的可维护性和可读性。Struts框架的核心是通过两个XML...

    struts2配置文件详解

    ### Struts2配置文件详解 #### 一、引言 在Java Web开发中,Struts2框架因其灵活性和强大的功能而被广泛采用。Struts2框架的配置主要通过多个XML文件来实现,这些配置文件定义了应用程序的行为和结构。本文将详细...

    Struts2中Struts.xml配置文件详解

    "Struts2 中 Struts.xml 配置文件详解" Struts2 中的 Struts.xml 配置文件是 Struts2 框架的核心配置文件,用于定义应用程序的行为和结构。在 Struts.xml 文件中,我们可以定义 package、action、interceptor、...

    struts2 配置文件详解

    struts2 配置文件详解 ,配置struts2 action和strtus1是不一样的,需要特殊处理一下

    struts.xml配置文件详解

    ### Struts.xml配置文件详解 #### 一、Struts配置文件概述 在Struts框架中,`struts.xml`配置文件扮演着极其重要的角色。它主要用于定义应用中的各种配置信息,包括但不限于包(Package)、拦截器(Interceptor)...

    struts2的struts.properties配置文件详解

    Struts2的Struts.properties配置文件详解 Struts2是一个基于MVC模式的Web应用程序框架,它提供了一个名为Struts.properties的配置文件,该文件用于配置Struts2的各种参数和设置。下面将对Struts.properties配置文件...

    ·Struts2配置文件介绍 超级详细

    ### Struts2配置文件介绍 #### 一、Struts2的核心配置文件 在Struts2框架中,有多个重要的配置文件用于控制应用的行为与结构,其中最核心的是`struts.xml`文件。此外还包括`web.xml`、`struts.properties`、`...

    详解struts1的配置文件.doc

    ### 详解Struts1的配置文件 #### 一、引言 在Java Web开发中,Struts1框架作为MVC架构的一种实现,被广泛应用于构建动态网站和企业级应用程序。Struts1的核心功能之一在于其强大的配置文件机制,通过XML格式的配置...

    struts-config配置文件详解

    struts-config配置文件详解

Global site tag (gtag.js) - Google Analytics