`
summerkai
  • 浏览: 93357 次
  • 性别: Icon_minigender_2
  • 来自: 农村
社区版块
存档分类
最新评论

Struts-config.xml 配制文件讲解

阅读更多

原文地址:http://hi.baidu.com/409976550/blog/item/428eb26428257af6f73654b7.html(转载请注明)

 

struts的配置文件详解
第一章Structs的基本配置
1.为Structs应用配置Web.xml文件
第一步:配置ActionServlet
<servlet>
    <servlet-name>action</servlet-name>
    <servlet-class>org.appache.structs.ActionServlet</servlet-class>
</servlet>

<servlet-mapping>
     <servlet-name>action</servlet-name>
     <uri-pattern>*.do</url-pattern>
</servlet-mapping>
注意:不管应用中包含多少个子应用,都只需配置一个ActionServlet,因为ActionServlet支持多线程,目前的Structs框架只允许在应用中配置一个ActionServlet。
第二步:初始化参数对Servlet的运行环境进行初始化配置。
<servlet>
     <servlet-name> action</servlet-name>
     <servlet-class> org.appache.structs.ActionServlet </servlet-class>
     <init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/structs-config.xml</param-value>
</init-param>
</servlet>
表2-1. Struts1.1中用到的初始化参数
参数名      含义/默认值
config       以相对路径的方式指明Struts应用程序的配置文件位置。如不设置,则默认值为/WEB-INF/struts-config.xml。
config/sub1       以相对路径的方式指明子应用程序的配置文件位置,一般来说,很少用到子应用程序,在此不多描述。
debug       设置Servlet的debug级别,控制日志记录的详细程度。默认为0,记录相对最少的日志信息。
detail       设置Digester的debug级别,Digester是Struts框架所使用的用来解析xml配置文件的一个框架,通过该设置,可以查看不同详细等级的解析日志。默认为0,记录相对最少的日志信息。

第三步:配置欢迎清单
     当客户访问Web应用时,如果仅仅给出Web应用的Root URL,没用指定具体的文件名,Web容器会自动调用Web应用的欢迎文件。
    <welcome-file-list>
             <welcome-file>welcome.jsp</welcome-file>
             <welcome-file>index.jsp</welcome-file>
</welcome-fiel-list>
说明:<welcome-file-list>可以包含多个<welcome-file>子元素,首先查找第一个<welcome-file>文件。
     由于<welcome-file-list>元素中不能配置Servlet映射,因此不能直接把Structs的Action作为欢迎文件,可以采用一种变通的方法来实现在欢迎文件中调用Structs Action。首先,在Structs配置文件中为被调用的Action创建一个全局的转发项,例如:
    <global-forwards>
          <forward name=”welcome” path=”HelloWord.do”/>
</global-forwords>
创建一个welcome.jsp的文件
最后在web.xml文件中把welcome.jsp文件配置为欢迎文件,代码如下:
       <welcome-file-list>
            <welcome-file>welcome.jsp</welcome-file>
       </welcome-file-list>
第四步:配置错误处理
    
<error-page>
      <error-code>404</error-code>
      <location>/commom/404.jsp</location>
</error-page>
<error-page>
      <error-code>505</error-code>
      <location>/commom/505.jsp</location>
</error-page>
     也可以为Web容器捕获的Java异常配置<error-page>,需要设置<exception-type>子元素,它用于指定Java异常类。Web容器可能捕获如下异常:
    RuntimeException或Error     ServletException或它的子类    IOException或它的子类
<error-page>
      <exception-type>java.io.IOException</exception-type>
      <location>/common/system_ioerror.jsp</location>
</error-page>
第五步:配置Structs标签库
      使用客户化的标签库,要配置它们
     <taglib>
         <tag-uri>/WEB-INF/structs-html.tld<tag-uri>
         <taglib-location>/WEB-INF/structs-html.tld</taglib-location>
     </taglib>
<tag-uri>用于指定标签库的相对或者绝对URI地址,Web应用根据这一URI来访问标签库。
<taglib-location>指定标签描述文件在文件资源系统中的物理位置。
2 Structs配置文件
       Structs框架在启动时会读入其配置文件,根据它来创建和配置各种Structs组件。
1<Structs-config>元素
       <structs-config>元素是Structs配置文件的根元素,<structs-cofig>元素有8个子元素。它的DTD定义如下:
<!ELEMENT structs-config(data-sources?,formbean?,global-exeception?,global-forward?,action-mapping,controller?,message-resources*,plug-in*)>
在Struts配置中,必须按照以上的DTD指定的先后顺序来配置<Structs-config>元素的各个子元素,如果颠倒了这些元素的配置文件中的位置,在Structs应用启动时会生成错误。
<data-sources>元素
                                                                                       


<data-sources>元素包含零个、一个或者多个<data-sources>子元素,<data-sources>用于配置特定的数据源,它可以包含多个<set-property>子元素,用于设置数据源的各种属性。
。。。
配置了数据源后,就可以在Action类中访问数据源,在org.apache.structs.action.Action类中定义了getDataSource(HttpRequrst)方法,它用于获取数据源对象的引用。
     DataSource    dataSource;
     Connection    connection;
         dataSource =getDataSource(request);
         connection=dataSource.getConnection();
也可以在配置文件中声明多个数据源,此时需要为每一个数据源分配唯一的key值,通过改值来标识特定的数据源。
2<form-beans>元素
     <form-beans>元素用来配置多个ActionForm Bean,<form-beans>包含多个<forom-bean>子元素,,每个<from-bean>包含多个属性,ClassName , name,type
     <form-beans>
          <form-bean name="HelloForm" type="hello.HelloForm"/>
</form-beans>
注意:配置动态ActionForm Bean,还必须配置<form-bean>元素的<form-property>元素。
<form-beans>
          <form-bean name="HelloForm" type="hello.HelloForm"/>
          <form-bean name="userForm" type="org.apache.structs.action.DynaAction">
          <from-property name="firstname" type="java.lang.String"/>
          <form-property name="secondname" type="java.lang.String">
          <form-property name="age" type="java.Integer" initial="18">
      </form-beans>
3<global-exception>元素
<global-exception>用于配置异常处理,<global-exception>元素可以包含零个或者多个<exception>元素。
<exception>元素用来设置java异常和异常处理类org.apache.structs.action,Exception    Hander之间的映射。
4<gloable-forwards>元素
       <global-forwards>元素用来声明全局的转发关系,<global-forwards>有零个或多个<forward>元素组成。<forward>元素用于把一个逻辑映射到特定的URL
属性      描    述
className      和<forward>元素对应的配置类,默认为org.apache.structs.action.ActionForWard
name      转发路径的逻辑名,此项时必须的
path      指定或者重定向的URI。此项时必须的,必须以”/”开头
redirect      此项是true,表示是执行重定向的操作,此项是false时,表示请求转发。

 


<global-forwards>
         <forward name="forward1" path="/Action1.do"/>
<forward name="forward1" path="/Action2.do"/>
</global-forwards>
如果jsp1.jsp把请求转发给Action1,可以使用以下代码:
<html:link forward=”forward1”>
    或者<logic:forward name=”forward1”>
如果Action1的execute()方法把请求转发给JSP2.jsp,可以使用一下代码:
return(mapping.findForward(“forward2”))
5<action-mapping>元素
     <action-mapping>元素包含零个或者多个<action>元素。<action>元素描述了从特定的请求路径到相应的Action类的映射。
6<controller>元素
    <controller>元素用于配置ActionServlet。
7< message-resources>元素
<message-resources>元素用于配置Resource Bundle,Resource Budle用于存放本地化消息文件。
Structs标签
HTML标签
标签名      描述
base      包装HTML的base元素
button      包装HTML的 button类型的input元素
cancel      包装HTML cancel 按钮
checkbox      包装HTML checkbox 类型的输入域
errors      有条件地显示一些error消息,显示ActionErrors信息
file      包装HTML文件上传输入域
form      定义HTML form 元素
frame      包装HTML frame 元素
hidden      包装HTML hidden 输入域
html      包装 HTML中的 html 元素
image      包装 "image"类型的输入域
img      包装HTML的 img 元素
javascript      包装根据ValidatorPlugIn提供的校验规则所提供的javascript校验脚本
link      包装超链接
messages      有条件地显示一些提示信息,显示ActionMessages信息
multibox      包装多选输入框
option      包装一个选择输入框
options      包装一批选择输入框
optionsCollection      包装一批选择输入框集
password      包装密文输入框
radio      包装单选输入框
reset      包装“重置”功能的按钮
rewrite      包装一个URL
select      包装一个选择输入框
submit      包装一个提交按钮
text      包装一个文本输入框
textarea      包装一个备注输入框

ActionForm
ActionForm 的要求
创建一个ActionForm 并不困难,但是你的类必须符合一些要求:
ActionForm 必须扩展自org.apache.struts.ActionForm。基类ActionForm 是不能实
例化的。
ActionForm 必须为每个应该从请求中收集的HTML控件定义一个公共属性。
(Struts 1.0 要求每个属性都要mutator 和accessor 。Struts 1.1 则没有如此严格)
ActionForm还可能要符合一些可选的要求:
如果你要求ActionForm 在传递属性到Action之前校验它们,你就必须实现validate
方法;
如果想在组装前初始化属性,必须实现reset , 它在ActionForm 组装前被调用;
动态ActionForm
ActionForm 作为类型转换器
ActionForm的一个强制点是应该使用String 和boolean属性。实际上,这意味着属性
必须得从一种转换到另一种类型。大部分应用也需要一些属性,比如电话号码或者数量,以
一种格式化的方式出现。核心Java 包提供一些工具来做这种事情,但是要清楚地将他们集
成到应用中仍然是一个挑战。
Struts 开发人员经常在ActionForm中包含helper方法,来进行类型转换。helper 方法
可以有很多种实现方式,这我们在5.6种叙述。
5.2.6 ActionForm 作为防火墙
当请求提交时,ActionServlet 使用一个自动组装机制来从请求参数中设置请求的
ActionForm属性。这让你可以通过控制哪个ActionForm 属性被暴露来控制哪个请求参数
是可接受的。这也意味着如果你的ActionForm 的粗心设计你可能失去控制哪个参数可以接
受的能力。ActionForm 一定不能包含看起来像是一个JavaBean 属性,但不能从HTTP 请
求设置的属性方法。
5.3.4 ActionForm 可以嵌套其它bean
因为Struts 标签扩展和自动组装机制都支持点号语法来从ActionForm访问其它
bean。这是一个方便的方式,可以通过ActionForm来组装存在的bean。在JSP 页面, 你可
以象这样引用一个嵌套的bean:
<html:text
propety="values.telephoneText"
size="14"
maxlength="14"/>
5.7.2 分发(Dispatch )
Struts 开发人员通常使用同一个Action处理相关的操作。一个通常做法来选择操作是在
HTML表单中使用隐藏属性。BaseForm 的dispatch 属性也可用作这个目的:
public void setDispatch(String dispatch);
public String getDispatch();
Struts 配置提供连个级别嵌套的ActionForward:
    Global (全局) ActionForward对整个应用中的所有Action 对象均有效;
    Local (局部) ActionForward 则在ActionMapping 元素中定义。仅对那些在这个
ActionMapping中调用的Action对象有效。
从Action 对象内部来看,forward 通常像这样来选择:
ActionForward forward = mapping.findForward("continue");

分享到:
评论

相关推荐

    Struts中配置文件的详细讲解

    主要有两个核心配置文件:`web.xml`和`struts-config.xml`。 首先,`web.xml`是Web应用的部署描述符,它位于`WEB-INF`目录下。这个文件是所有Web应用都需要的,不仅Struts应用,任何基于Servlet的Web应用都需要它。...

    Struts配置文件详细讲解

    主要涉及两个配置文件:`web.xml`和`struts-config.xml`。 **1. `web.xml` - Web应用部署描述符** `web.xml`是每个Java Web应用程序的标准配置文件,用于向Web容器(如Tomcat)提供关于应用的元数据。此文件包含了...

    struts1.x技术课程讲解.pdf

    - **ActionServlet** 接收请求后,根据配置文件 struts-config.xml 中的规则,决定调用哪个 Action 类来处理请求。 - **Action** 类执行业务逻辑,修改模型状态,并返回一个 ActionForward 对象,指明应转向哪个 ...

    struts.xml文件详解.doc

    Struts.xml文件是Apache Struts 2框架的核心配置文件,它用于定义应用程序的行为、Action映射、结果页面、拦截器等关键组件。在深入讲解struts.xml之前,我们先来了解与之相关的struts.properties文件。 struts....

    struts配置文件讲解

    在这篇详尽的讲解中,我们将深入探讨Struts配置文件的关键元素和作用。 1. **struts-config.xml文件**:这是Struts框架的主要配置文件,通常位于Web应用的WEB-INF目录下。这个XML文件包含了所有关于动作映射、数据...

    spirng hibernate struts1整合jar包和配置流程

    创建struts-config.xml配置文件,定义Action类和对应的ActionForm,以及视图页面的跳转规则。 2. 配置Spring: 创建applicationContext.xml配置文件,声明Bean的定义,包括Hibernate的SessionFactory、DAO和...

    实验指导\第二章Struts框架详解.doc

    2. **理解配置文件的作用**:`struts-config.xml`是Struts的配置文件,它定义了各个Action、ActionForm以及它们之间的映射关系,以及请求的转发规则。 ### 实验步骤 1. 创建名为`Login`的新工程,并添加Struts支持...

    Struts配置文件讲解

    在 Struts 应用程序中,`struts-config.xml` 文件是核心配置文件,它定义了应用程序的行为和组件之间的关系。以下是 `struts-config.xml` 文件的主要元素及其详细解释: 1. **数据源(Data Sources)**: - `&lt;data...

    Struts1基本配置

    - **struts-config.xml**:这是Struts1的核心配置文件,包含了所有Action、Form Bean、Forward、Plug-in等配置信息。例如: ```xml &lt;struts-config&gt; &lt;form-beans&gt; &lt;!-- Form Bean配置 --&gt; &lt;/form-beans&gt; ...

    最简单的Struts1入门案例

    2. **struts-config.xml配置**:这是Struts1应用的主配置文件,它定义了Action的映射、数据源、Form Bean和其他组件。在"配置文件有详细的解释"的描述中,我们可以期待这个案例会详细讲解如何配置Action与URL路径的...

    struts框架详细介绍

    Struts框架是一个经典的Java web应用程序开发框架,由Apache软件基金会...通过以上讲解,我们了解了Struts框架的基本构成、工作原理以及配置文件的使用。掌握这些知识,能帮助开发者更高效地构建和管理Java web应用。

    Struts1的开发过程

    3. 配置`struts-config.xml`:这是Struts的核心配置文件,用于定义Action、Form Bean、Action Mapping等。一个简单的配置示例如下: ```xml &lt;?xml version="1.0" encoding="UTF-8"?&gt; &lt;!DOCTYPE struts-config PUBLIC...

    Struts.in.Action中文版.rar

    7. **Struts配置文件**:struts-config.xml是Struts的核心配置文件,它包含了ActionMapping、ActionForm、数据源、国际化资源等关键配置,是理解和使用Struts框架的关键。 8. **国际化与本地化**:Struts支持多语言...

    struts的课件,及详细讲解

    最后,通过action和struts.xml配置文件控制页面间的跳转和业务逻辑的执行,形成了完整的请求处理流程。 项目调度流程展示了各个对象之间的交互,例如,当执行查询操作时,用户通过JSP页面输入查询条件,UserAction...

    Struts实例讲解

    接下来是配置`web.xml`文件,这是每个Servlet应用的核心配置文件。在`web.xml`中,你需要声明`ActionServlet`,它是Struts框架的主控制器。配置如下: ```xml &lt; servlet-name &gt; action &lt;/ servlet-name &gt; ...

    struts教程

    ActionMapping则定义了Action与URL之间的映射关系,通过struts-config.xml配置。 **4. ActionForm** ActionForm对象用于封装表单数据,从客户端传入,被Action处理后返回给视图。每个ActionForm对应一个特定的用户...

    structs详解--课件

    - `org.apache.struts.config`:处理struts-config.xml配置文件的元素映射。 - `org.apache.struts.util`:提供通用服务,如连接池和消息源支持。 - `org.apache.struts.taglib`:包含用于构建用户界面的各种标签库...

    Struts In Action.zip

    Struts的核心组件包括Action、ActionForm、ActionServlet、配置文件(struts-config.xml)以及各种标签库。 1. **Action**:Action是处理用户请求的中心组件,它接收ActionForm中的数据,执行业务逻辑,并决定转发...

    03_张孝祥09年Struts视频_validator单元3.rar

    1. **定义验证规则**:在XML配置文件(如struts-config.xml或validator-rules.xml)中,开发者可以定义每个字段的验证规则,如非空检查、长度限制、格式验证(如电子邮件地址、日期等)。 2. **创建验证表单**:在...

    SSH开发struts所用的jar包

    在Struts中,`Action`类是业务逻辑的核心,`ActionForm`用于封装请求参数,而配置文件(如struts-config.xml)则定义了请求与Action之间的映射关系。 在Struts开发中,我们需要一系列的jar包来支持其运行。这些jar...

Global site tag (gtag.js) - Google Analytics