`

struts1.1 配置文件属性

阅读更多

Struts应用采用两个基于XML的配置文件来配置,分别是web.xmlstruts-config.xml文件。web.xml文件是配置所有web应用的,而struts-config.xml文件是struts专用的配置文件,事实上也是可以根据需要给这个配置文件起其他名称的。

        Web应用的发布描述文件:

        web应用发布描述文件可以在应用开发者,发布者和组装者之间传递配置信息,Web容器在启动的时候从该文件中读取配置信息,根据它来装载和配置web应用。文档类型定义DTDXML文档的格式做了定义,DTDXML文档划分为元素,属性,实体。每一种XML文档都有独自的DTD文件,可以从网上下载。<web-app>元素是web.xml的根元素,其他元素必须嵌入在<web-app>元素之内。要注意的是子元素也是有顺序的,比如必须是首先<servlet>,然后<servlet-mapping>,最后<taglib>

        Struts应用配置Web.xml文件:

        首先最重要的一步是配置ActionServlet,这个用<servlet>标签的servlet-name属性起一个名字叫action,然后用servlet-class属性指定ActionServlet的类。

        然后用<servlet-mapping>标签的servlet-name属性指定action,在用url-pattern指定接收范围是*.do的请求。不管应用中包含了多少子应用,都只需要配置一个ActionServlet。因为Servlet本身就是多线程的,而且目前Struts只允许配置一个ActionServlet。声明ActionServlet的初始化参数:<servlet><init-param>子元素用来配置Servlet的初始化参数。param-name设置config参数名,param-value设置struts-config.xml的路径参数值。

        配置欢迎使用清单:

        如果客户访问Web的时候只是访问了WEB应用的根目录URL,没有具体的指定文件,Web会自动调用Web的欢迎文件。这是通过<welcome-file-list>元素来配置的。例如:<welcome-file>index.html</welcome-file>

        配置错误处理:

        尽管Struts框架有功能强大的错误处理机制,但是不能保证处理所有的错误或者异常。当错误发生时,如果框架不能处理这种错误,把错误抛弃给Web容器,在默认的情况下web容器会向客户端返回错误信息。如果想避免让客户看到原始的错误信息,可以在Web应用发布描述文件中配置<error-page>元素。通过<error-code>404来定义错误的类型,然后通过<location>要处理错误的JSP页面来对错误进行处理。还可以用<exception-type>来设置异常,然后通过<location>来处理异常的JSP页面来处理异常。

        配置Struts标签库:

        这个和的JSP自定义标签类似,配置元素为<taglib>来配置。<taglib-uri>这个指定标签库的uri,类似起一个名称。<taglib-location>这个是标签库的位置,也就是实际所在的路径。通过这样的方法引入一个标签库,然后在前台JSP页面就可以通过自己定义的URI来调用标签。

        Struts配置(struts-config.xml)文件:

        首先研讨一下org.apache.struts.config包,在struts应用启动的时候会把Struts配置文件信息读取到内存中,并把它们存放在config包中相关的JavaBean类的实例中。包中的每一个类都和struts配置文件中特定的配置元素对应,ModuleConfigStruts框架中扮演了十分重要的角色,它是整个config包的核心,在Struts运行时来存放整个应用的配置信息。如果有多个子应用都会有一个ModuleConfig对象,它和Struts文件根元素的<struts-config>对应。根元素中包含<form-bean><action><forward>等元素。

        <struts-config>元素:这是Struts配置文件的根元素,和它对应的配置类ModuleConfig类,<struts-config>元素有8个子元素。他们的DTD定义是data-sources?form-bean? global-exception?global-forwards?action-mapping?controller?message-resources?plug-in*Struts配置文件中,必须按照DTD指定的先后顺序来配置<struts-config>元素的各个子元素,如果颠倒了这些子元素的顺序会产生错误。

        <data-sources>元素:用来配置应用所需要的数据源,数据源负责创建和特定的数据库的连接。许多数据源采用连接池的机制实现,以便提高数据库访问的性能。JAVA语言提供了javax.sql.DataSource接口,所有的数据源都必须实现这个接口。许多应用服务器和Web服务器都提供了数据源组件,很多数据库厂商也提供了数据源的实现。<data-sources>元素包含多个<data-source>子元素永远配置特定的数据源。他们可以包含多个<set-property>子元素用于设置数据源的各种属性。配置了数据源以后,就可以在Action类中访问数据源。在Action中定义getDataSource(HttpRequest)方法,用于获取数据源对象的引用,然后可以利用DataSource对象调用getConnection获取一个连接对象对数据库进行操作。在配置文件中声明多个数据源的时候需要为每一个数据源分配唯一的Key值,通过这个来表示特定的数据源。获取特定的数据源的时候可以用dataSource = getDataSource(reqeust,A)。该元素具体配置示例说明如下:

    <data-sources>

  <data-source type=”org.apached.commons.dbcp.BasicDataSource”>

    ………………

  </data-source>

</data-sources>

Action中访问方式如:

javax.sql.DataSource dataSource;

java.sql.Connection myConnection;

try

{

  dataSource = getDataSource(request);

  myConnection = dataSource.getConnection();

}

…………

  如果是多数据源,可用如下配置:

<data-sources>

  <data-source key=”a”  type=”org.apached.commons.dbcp.BasicDataSource”>

    ………………

  </data-source>

  <data-source key=”b”   type=”org.apached.commons.dbcp.BasicDataSource”>

    ………………

  </data-source>

</data-sources>

访问方式:dataSource = getDataSource(request,”a”);

        <form-beans>元素:用来配置多个ActionForm,包含一个或者N<form-bean>子元素。每个<form-bean>元素都包含多个属性,className指定和<form-bean>匹配的类,name指定该ActionForm的唯一标识符,这个属性是必须的以后作为引用使用;type指定ActionForm类的完整类名,这个属性也是必须的。注意包名也要加上<form-property>,这是指定动态的Form的元素。具体配置示例说明如下:

该元素主要用来配置表单验证的类。它包含如下属性:

  1. classname:一般用得少,指定和form-bean元素对应的配置类,默认为org.apache.struts.config.FormBeanConfig,如果自定义,则必须扩展FormBeanConfig类,可有可无。

  2. nameActionForm Bean的惟一标识。必须。

  3. typeActionForm的完整类名。必须。

如下所示:

<form-beans>

  <form-bean

      name=”Loign”

      type=”com.ha.login”>

  </form-bean>

</form-beans>

  如果是动态Action FormBean,还必须配置form-bean元素的form-property子元素。它包含四个属性,上面三个,还有一个initial 元素:以字符串的形式设置表单字段的初始值,如果没有设置该属性,则是基本类型为0,如果是对象则为null。可有可无。如下所示:

<form-beans>

  <form-bean

      name=”Loign”

      type=”com.ha.login”>

     <form-property name=”ok”  type=”java.lang.String”/>

     <form-property name=”oks”  type=”java.lang.String”/>

     <form-property name=”okss”  type=”java.lang.Integer” initial=”20″/>

  </form-bean>

</form-beans>

        <global-exception>元素:用于配置异常处理,元素可以包含一个或者多个<exception>元素,用来设置JAVA异常和异常处理类ExceptionHandler之间的映射。className指定和元素对应的配置类,默认的不用动handler指定异常处理类,默认是ExceptionHandlerkey指定在本地资源文件中异常的消息Keypath指定当前异常发生的时候转发的路径。scope指定ActionMessages实例存放的范围,type指定需要处理异常类的名字,必须的有bundle指定Resource Bundle。具体配置示例说明如下:

    该元素主要配置异常处理,它的exception子元素代表全局的异常配置。struts采取配置的方式来处理异常。它用来设置java异常和异常处理类org.apache.struts.action.ExceptionHandler之间的映射。它有七个属性,如下所示:

  1. className:指定和exception元素对应的配置类,默认为:org.apache.struts.config.ExceptionConfig。可有可无。

  2. Handler:指定异常得理类,默认为:org.apache.struts.action.ExceptionHandler。可有可无

  3. key:指定在Resource Bundle中描述该异常的消息key

  4. path:指定当异常发生时的转发路径。

  5. scope:指定ActionMessages实例的存放范围,可选值包括:requestsession,默认为request。可有可无。

  6. type:指定所需处理异常类的名字,必须。

  7. bundle:指定Resource Bundle

如下所示:

<global-exceptions>

  <exception

      key=”global.error.invalidlogin”

      path=”/error.jsp”

      scope=”request”

      type=”com.hn.tree”

  />

</global-exceptions>

        <global-forwards>元素:用来声明全局转发,元素可以有一个或者N<forward>元素组成,用于把一个逻辑名映射到特定的URL,通过这种方法Action类或者JSP页面无需指定URL,只要指定逻辑名称就可以实现请求转发或者重定向。这样可以减少控制组件和视图的聚合.,易于维护。className对应的配置类contextRelative,如果为true表示当path属性以/开头的时候,给出的是对应的上下文URL默认是false.name转发路径的逻辑名,必须写path转发或者重定向的URL,必须是以/开头.redirect设置为true的时候表示执行重定向操作;此项为false的时候,表示执行请求转发操作。重定向与请求转发的区别就是,重定向是把请求生成应答给客户端,然后在重新发送给定向的URL,浏览器地址栏会有显示;而转发就是直接把请求转发给应用的另一个文件,不生成应答所以客户端IE没显示。具体配置示例说明如下:

    该元素主要用来声明全局的转发关系,它具有以下四个属性:

  1. className:和forward元素对应的配置类,默认为:org.apache.struts.action.ActionForward。可有可无。

  2. contextRelative:此项为true时,表时path属性以"/"开头,相对于当前上下文的URL,默认为false.可有可无。 

  3. name:转发路径的逻辑名.必填。

  4. path:转发或重定向的URL,当contextRelative=false时,URL路径相对于当前应用(application),当为ture时,表示URL路径相对于当前上下文(context)。

  5.  redirect:当此项为ture时,表示执行重定向操作。当此项为false时表示转向操作。默认为false

如下所示:

<global-forwards>

  <forward  name=”forms1″  path=”/a.do”/>

  <forward  name=”forms2″  path=”/nb.jsp”/>

<global-forwards>

        <action-mapping>元素:包含一个或者N<action>元素,描述了从特定的请求路径到响应的Action的映射。在<action>元素中可以包含多个<exception><forward>子元素,他们分别配置局部异常处理和局部转发。attribute设置Action关联的ActionFormrequest或者session范围内的key,就是在request或者session共享内的名称。className对应配置元素的类,默认的是ActionMapping.forward指定转发URL路径。include指定包含URL路径input指定包含表单的URL,当表单验证失败的时候发送的URL.name,指定和该Action关联的Form名字。该名字必须是在form-bean中定义过的,parameter指定Action配置参数。在Actionexecute()方法中可以调用ActionMappinggetParameter()方法来读取匹配的参数。roles指定允许调用该Action的安全角色,多个角色之间逗号格开。scope指定Form的存在范围,默认是session.tyep指定Action的完整类名。unknown如果是true表示可以处理用户发出的所有的无效的ActionURL,默认是false.validate指定是否调用ActionFormvalidate方法。具体配置示例说明如下:

    描述从特定的请求路径到相应的Action类的映射。它具有以下几个属性:

  1. attribute:设置和Action关联的ActionForm Beanrequestsession范围内的key。如:Form Bean存在于request范围内,此项设为“myBenas”,则在request.getAttribute(”myBenas̶ ;) 就可以返回该Bean的实例。

  2. classsName:和action元素对应的配置元素,默认为:org.apache.struts.action.ActionMapping.

  3. forward:转发的URL路径。

  4. include:指定包含的URL路径。

  5. input:输入表单的URL路径,当表单验证失败时,将把请求转发到该URL

  6. name:指定和Action关联的Action FormBean的名字,该名字必须在Form-Bean定义过。

  7. path:指定访问Action的路径,以“/”开头,无扩展名。

  8. parameter:指定Actgion的配置参数,在Action类的execute()方法中,可以调用ActionMapping对象的getParameter()方法来读取该配置参数。

  9. roles:指定允许调用该Action的安全角色,多个角色之间用,隔开,在处理请求时,RequestProcessor会根据该配置项来决定用户是否有权限调用Action权限。

  10. scope:指定ActionForm Bean的存在范围,可选取为requestsession,默认为session

  11. type:指定Action类的完整类名。

  12. unknown:如果此项为true,表示可以处理用户发出的所有无效的Action URL,默认为false

  13. validate:指定是否要调用Action FormBeanvalidate方法,默认值为ture.

注:forwardincludetype属性只能选中其中一项。

如下:

<action path=”/search”

    type=”zxj.okBean”

    name=”a1″

    scope=”request”

    validate=”true”

    input=”/b.jsp”>

  <forward name=”tig” path=”/aa.jsp”/>

</action>

注:此中的forward是指局部的转发路径。global-forwards表示全局的转发路径。

        <controller>元素:用于配置ActionServlet.buffreSize指定上载文件的输入缓冲大小。该属性为可选默认4096className指定元素对应的配置类ControllerConfig。然后是contentType指定响应结果内容类型和字符编码,该属性为可选,默认是text/html。如果在Action或者JSP网页也设置了类型内容,会覆盖这个。locale指定是否把Locale对象保存到当前用户的session中,默认false.tempDir指定处理文件上载的临时工作目录nochache,如果是true在响应结果中加入特定的头参数。具体配置示例说明如下:

    该元素用于配置ActionServlet。它具有以下属性。

  1. bufferSize:指定上载文件的输入缓冲大小,可选,默认为4096

  2. className:指定和controller元素对应的配置类,默认为org.apache.struts.config.ControllerConfig

  3. conentType:字符编码,如果在ActionJSP网页中设置了,则覆盖该设置。

  4. locale:指定是否把Locale对象保存到当前用户的session中,默认值为false.

  5. processorClass:指定负责请求的java类完整路径。

  6. tempDir:指定处理文件的临时工作目录,如果此项没有设置,将采用Servlet容器为web应用分配的临时工作目录。

  7. nochache:如果为true:在响应结果中将加入特定的头参数:Pragma,Cache-ControlExpise,防止页面被保存在客户端的浏览器中,默认为false

如下:

<controller

  contentType=”text/html;charset=”UTF-8″”

  locale=”true”

  processorClass=”con.ok”/>

        <message-resources>元素:用来配置Resource Bundle,用于存放本地文本消息文件className元素对应的配置类MessageResourcesConfigfactory指定消息的工厂类。key指定文件存放的Servlet对象中采用的属性Keynull指定如何处理未知消息。parameter指定消息的文件名。具体配置示例说明如下:

    主要配置本地化消息文本,它具有以下属性。

  1. className:和message-resources元素对应的配置类,默认为org.apache.struts.config.MessageResourcesConfig

  2. factory:指定消息资源的工厂类,默认为:org.apache.struts.util.PropertyMessageResourcesFactory

  3. key:指定Resource Bundle存放的ServletContext对象中时采用的属性Key,默认由Globals.MESSAGES_KEY定义的字符串常量,只允许一个Resource Bundle采用默认的属性Key

  4. null:指定MessageSources类如何处理未知消息的key,如果为true,则返回空字符串,如果为false,则返回相关字串,默认为false

  5. prameter:指定MessageSources的资源文件名,如果为:a.b.ApplicationResources,则实际对应的文件路径为:WEB-INF/classes/a/b/ApplicationResources.properties.

如:

<message-resources null=”false” parameter=”defaultResource”/>

<message-resources key=”num1″ null=”false” parameter=”test”/>

访问为:

<bean:message  key=”zxj”/>

<bean:message  key=”zxj”  bundle=”num1″/>

其中,zxj表法,messagesource资源文件中的一个字符串。

        <plug-in>元素:用于配置Struts插件,配置多应用模块。所有的子应用都可以共享同一个ActionServlet实例,但是每个子应用都有单独的配置文件,把应用划分为多个子应用模块。首先为每个应用创建单独的Struts配置文件,在web.xmlActionServlet配置代码中添加几个子应用信息,采用<forward>元素来实现应用之间的切换。具体配置示例说明如下:

    配置Struts的插件,属性如下:

  1. className:指定的Struts插件类,必须实现org.apache.struts.action.PlugiIn接口。如:

<plug-in

  className=”a.b.c.”>

  <set-property property=”xxx” value=”/WEB-INF/aa.xml”  />

</plug-in>

分享到:
评论
1 楼 zlb824 2011-08-12  
谢谢分享!转啦

相关推荐

    struts2讲义_吴峻申

    1.2.4 Struts2配置文件处理 15 1.2.5 OGNL介绍和类型转换目的 15 1.2.6 进行校验 16 1.2.7 Web项目国际化根由 16 1.2.8 SiteMesh页面布局框架简介 17 1.3 我们为什么要用Struts2 17 1.4 Web项目中使用Struts2初探 20...

    Struts框架及标记库

    1.3.1 Struts配置文件 5 1.3.2 ActionServlet类 8 1.3.3 ActionMapping类 10 1.3.4 Action类 10 1.3.5 ActionForm类 11 1.3.6 ActionForward类 12 1.3.7 错误处理 12 2 Struts标记库 14 2.1 Struts标记库 14 2.1.1 ...

    Struts中文手册[文字版][中文]

    1.3.1. Struts配置文件.3 1.4. ActionServlet类6 1.4.1. ActionServlet配置6 1.4.2. ActionServlet方法7 1.5. ActionMapping 类8 1.6. Action 类.8 1.6.1. Action 类的方法.9 1.7. ActionForm类9 1.8. ActionForward...

    struts2_spring3_hibernate3_1.1

    使用技术说明: ...3.使用传统的配置文件集成框架。 A.视图层使用struts标签。 B.对用户输入验证 1.controller验证属性 2.使用Validate 3.ajax后台验证,使用json-plugin。 C.添加登录状态验证。

    深入浅出Struts2(附源码)

    2.5.1 部署描述文件和Struts配置文件 27 2.5.2 动作类 28 2.5.3 运行app02a程序 29 2.6 依赖注入 29 2.6.1 概述 29 2.6.2 依赖注入的几种方式 31 2.7 小结 31 第3章动作与结果 32 3.1 动作类 32 3.2 如何...

    Struts2 in action中文版

    1.1 Web应用程序:快速学习 2 1.1.1 构建Web应用程序 2 1.1.2 基础技术简介 3 1.1.3 深入研究 6 1.2 Web应用程序框架 7 1.2.1 什么是框架 7 1.2.2 为什么使用框架 8 1.3 Struts 2框架 9 1.3.1 Struts 2简史 9 1.3.2 ...

    structs程序设计从入门到精通word文档

    3.3Struts-config.xml配置文件讲解 3.4struts中文问题","struts国际化问题"??终极解决方案 9 3.5为 Web 服务构建 Struts 应用程序 9 3.6Struts标记库是如何工作的 9 3.7Struts 9 3.8struts简单例子的分析(含代码...

    公文传输系统velocity struts spring hibernate(lib太大只发截图自己去下)

    1.1 修改Spring配置文件 1.1.1 查找并打开GWCS/WebRoot/WEB-INF/applicationContext.xml文件。 1.1.2 数据库配置 找到“dataSource”定义部分,根据实际情况修改数据库连接属性值,比如连接字符串url、用户名...

    深入浅出Struts 2 .pdf(原书扫描版) part 1

    2.5.1 部署描述文件和Struts配置文件 27 2.5.2 动作类 28 2.5.3 运行app02a程序 29 2.6 依赖注入 29 2.6.1 概述 29 2.6.2 依赖注入的几种方式 31 2.7 小结 31 第3章 动作与结果 32 3.1 动作类 32 3.2 如何访问资源 ...

    基于SSH的网上书店管理系统.zip-11

    1.2.2Hibernate:Mysql连接,配置文件bean.xml 1.3主要功能 用户类型:普通用户、注册用户、书店管理员 普通用户功能:查看图书信息、搜索图书、注册 注册用户功能:查看图书信息、搜索图书、登录、购买图书、查看...

    低清版 大型门户网站是这样炼成的.pdf

    2.2.2 struts 2属性配置文件struts.properties详解 55 2.2.3 struts 2核心配置文件struts.xml详解 57 2.3 struts 2应用开发实务 61 2.3.1 struts 2应用开发环境的搭建 62 2.3.2 struts 2应用基本开发步骤—搭建...

    Struts in Action中文版

    1.1. 关于本书...............................................................................................................19 1.1.1. 谁创建了 Struts?....................................................

    J2EE电子商务系统开发从入门到精通

    2.6 Struts的配置文件..... 38 2.6.1 web.xml文件..... 38 2.6.2 Struts-config.xml文件..... 39 2.7 Struts标签库..... 43 2.7.1 Bean标签库..... 43 2.7.2 HTML标签库..... 44 2.7.3 Logic标签库..... 45 2.8 ...

    struts in Action

    1.1. 关于本书...............................................................................................................19 1.1.1. 谁创建了Struts?......................................................

    JAVA程序开发大全---上半部分

    8.2.3 Struts配置文件编辑器 124 8.3 Struts应用实例:登录系统 125 8.4 本章小结 133 第9章 Hibernate框架的开发及应用 134 9.1 Hibernate框架概述 134 9.1.1 O/R Mapping(对象/关系映射)技术 134 9.1.2 ...

    ssh(structs,spring,hibernate)框架中的上传下载

    WEB-INF下的applicationContext.xml为Spring的配置文件,struts-config.xml为Struts的配置文件,file-upload.jsp为文件上传页面,file-list.jsp为文件列表页面。  本文后面的章节将从数据持久层->业务层->Web层的...

    Java Web编程宝典-十年典藏版.pdf.part2(共2个)

    8.5.1 Struts2的配置文件类型 8.5.2 Struts2的包配置 8.5.3 名称空间配置 8.5.4 Action相关配置 8.5.5 通配符实现简化配置 8.5.6 返回结果的配置 8.6 Struts2的开发模式 8.6.1 实现与ServletAPI的交互 86.2 域模型...

Global site tag (gtag.js) - Google Analytics