`
独善其身008
  • 浏览: 171367 次
  • 性别: Icon_minigender_2
  • 来自: 苏州
文章分类
社区版块
存档分类
最新评论

struts2 的配置文件DTD

 
阅读更多

高手可以跳过。。。。 
最近因项目需开始重新使用Struts2,很久没用过了,所以花了点时间去重新学习,无论是spring还是hibernate,都是通过加载配置文件来实现功能。所以这里我就先开始掌握STRUTS的配置文件。 
好记性不如烂笔头,再说拉写在论坛里面可能对大伙有点用处,还可以给自己加分。。。何乐而不为呢! 
关于DTD(Document Type definition), 
大家可以参考这里:http://www.w3schools.com/dtd/default.asp 
英语的,不是ZB,是强迫自己养成习惯一定要看英语版的。 
谁让标准都是老外在定呢???? 这里感叹一下! 

先说下结构,根元素是struts 
在struts下包含四个子元素,分别是package、include、bean、constact。 

Java代码  收藏代码
  1. <!ELEMENT struts (package|include|bean|constant)*>  


-------------------------------------------------------------------------------------------------------- 
看下package元素的定义: 
Java代码  收藏代码
  1. <!ELEMENT package (result-types?, interceptors?, default-interceptor-ref?, default-action-ref?, default-class-ref?, global-results?, global-exception-mappings?, action*)>  
  2. <!ATTLIST package  
  3.     name CDATA #REQUIRED  
  4.     extends CDATA #IMPLIED  
  5.     namespace CDATA #IMPLIED  
  6.     abstract CDATA #IMPLIED  
  7.     externalReferenceResolver NMTOKEN #IMPLIED  
  8. >  


先看下package的属性: 
name:可以随便取,可以被其他package继承,字符串类型。这个是必填的。注意后面的#REQUIRED。 
extends:按照我的实验和google的说法,这个很重要,继承struts-defalut.xml的一些东西,而在struts-default.xml中包含了基础的拦截器配置信息。继承了这个,我们就可以直接使用里面的拦截器啦。 
namespace:命名空间,struts2以命名空间来管理action,同一个命名空间里面不能有相同名的action。有点类似Java包。 

package下的子元素: 
这里我只说下action这个子元素,配置action就是让Struts容器知道action的存在,并且能调用该action来处理用户请求,应该说action是struts2的基本程序单位: 
原理:在这里我们要理解action只是一个控制器,按照MVC的架构他属于C,所以需要配置M与V的映射给ACTION。 
我们知道action是package的子元素,所以struts是通过包来组织action的。很类似于我们平时写Java程序,因为我们的类也是通过包来组织的。 
先看下action的定义: 
引用

<!ELEMENT action (param|result|interceptor-ref|exception-mapping)*> 
<!ATTLIST action 
    name CDATA #REQUIRED 
    class CDATA #IMPLIED 
    method CDATA #IMPLIED 
    converter CDATA #IMPLIED 


这里说下action的重要属性和子元素: 
属性name :必填,而且在同一个包下唯一,字符串 
属性class:指定action类 
子元素result,: 
这个元素非常简单,只有2个属性,分别是name和type 
type配置了转发类型,常用的类型有dispatcher(默认),redirect,redirectAction,plainText。分别是转发、重定向、防止重复提交的重定向、显示原始文件内容,当我们需要显示源码时可以使用。 
这里给一个简单的实例: 
Java代码  收藏代码
  1. <struts>  
  2. package name="demo"extends="struts-default">  
  3.     <action name="submit" class="action.MoreSubmitAction">  
  4.         <result name="save">  
  5.              /result.jsp  
  6.         </result>  
  7.         <result name="print">  
  8.             /result.jsp  
  9.          </result>  
  10.     </action>  
  11. </package>  
  12. </struts>  

ps:在package中有个子元素叫做global-results,这个是定义全局result的。当我们平凡使用一个相同的视图时,可以考虑使用该元素。 

-------------------------------------------------------------------------------------------------------- 
接下来是include: 
Java代码  收藏代码
  1. <!ELEMENT include (#PCDATA)>  
  2. <!ATTLIST include  
  3.     file CDATA #REQUIRED  
  4. >  

这个元素虽然只有一个file属性,但是我想以我们现在的项目规模以及为了以后的维护和扩展,这个一定要用。 
一旦package、action、interceptors等配置比较多时,都放到一个struts.xml文件不太容易维护。因此,就需要将struts.xml文件分成多个配置文件,然后在struts.xml文件中使用<include>标签引用这些配置文件。 


--------------------------------------------------------------------------------------------------------bean元素: 
Java代码  收藏代码
  1. <!ELEMENT bean (#PCDATA)>  
  2. <!ATTLIST bean  
  3.     type CDATA #IMPLIED  
  4.     name CDATA #IMPLIED  
  5.     class CDATA #REQUIRED  
  6.     scope CDATA #IMPLIED  
  7.     static CDATA #IMPLIED  
  8.     optional CDATA #IMPLIED  
  9. >  

这个我没用过,个人理解是这样,这个元素是为了扩展struts2用的,我们可以自己写的组件注入到struts2中,这样struts2就有很大的扩展性啦。而且struts2自身也是通过这种方式生成的。好像。。。。待验证!   

-------------------------------------------------------------------------------------------------------- 
constant元素: 
Java代码  收藏代码
  1. <!ELEMENT constant (#PCDATA)>  
  2. <!ATTLIST constant  
  3.     name CDATA #REQUIRED  
  4.     value CDATA #REQUIRED      
  5. >  

配置Struts2的常量属性,struts容器会读取这些配置来改变struts的运行。具体如下(Copy自网上): 
Java代码  收藏代码
  1. <!-- 指定Web应用的默认编码集,相当于调用HttpServletRequest的setCharacterEncoding方法 -->     
  2. <constant name="struts.i18n.encoding" value="UTF-8" />     
  3. <!--      
  4. 该属性指定需要Struts 2处理的请求后缀,该属性的默认值是action,即所有匹配*.action的请求都由Struts 2处理。     
  5. 如果用户需要指定多个请求后缀,则多个后缀之间以英文逗号(,)隔开。     
  6.  -->     
  7. <constant name="struts.action.extension" value="do" />     
  8.    <!-- 设置浏览器是否缓存静态内容,默认值为true(生产环境下使用),开发阶段最好关闭 -->     
  9.    <constant name="struts.serve.static.browserCache " value="false" />     
  10.    <!-- 当struts的配置文件修改后,系统是否自动重新加载该文件,默认值为false(生产环境下使用),开发阶段最好打开 -->     
  11.    <constant name="struts.configuration.xml.reload" value="true" />     
  12.    <!-- 开发模式下使用,这样可以打印出更详细的错误信息 -->     
  13.    <constant name="struts.devMode" value="true" />     
  14.    <!-- 默认的视图主题 -->     
  15.    <constant name="struts.ui.theme" value="simple" />     
  16.    <!-- 该属性指定Struts 2中的action由Spring容器创建  -->     
  17.    <constant name="struts.objectFactory" value="spring" />   
  18.   
  19.  <!-- 指定Web应用的默认编码集,相当于调用HttpServletRequest的setCharacterEncoding方法 -->  
  20.  <constant name="struts.i18n.encoding" value="UTF-8" />  
  21.  <!--   
  22.  该属性指定需要Struts 2处理的请求后缀,该属性的默认值是action,即所有匹配*.action的请求都由Struts 2处理。  
  23.  如果用户需要指定多个请求后缀,则多个后缀之间以英文逗号(,)隔开。  
  24.   -->  
  25.  <constant name="struts.action.extension" value="do" />  
  26.     <!-- 设置浏览器是否缓存静态内容,默认值为true(生产环境下使用),开发阶段最好关闭 -->  
  27.     <constant name="struts.serve.static.browserCache " value="false" />  
  28.     <!-- 当struts的配置文件修改后,系统是否自动重新加载该文件,默认值为false(生产环境下使用),开发阶段最好打开 -->  
  29.     <constant name="struts.configuration.xml.reload" value="true" />  
  30.     <!-- 开发模式下使用,这样可以打印出更详细的错误信息 -->  
  31.     <constant name="struts.devMode" value="true" />  
  32.     <!-- 默认的视图主题 -->  
  33.     <constant name="struts.ui.theme" value="simple" />  
  34.     <!-- 该属性指定Struts 2中的action由Spring容器创建  -->  
  35.     <constant name="struts.objectFactory" value="spring" />  
  36.   
  37.   
  38. struts.serve.static.browserCache  
  39.   
  40. 该属性设置浏览器是否缓存静态内容。当应用处于开发阶段时,我们希望每次请求都获得服务器的最新响应,则可设置该属性为false。  
  41.   
  42. struts.enable.DynamicMethodInvocation  
  43.   
  44. 该属性设置Struts 2是否支持动态方法调用,该属性的默认值是true。如果需要关闭动态方法调用,则可设置该属性为false。  
  45.   
  46. struts.enable.SlashesInActionNames  
  47.   
  48. 该属性设置Struts 2是否允许在Action名中使用斜线,该属性的默认值是false。如果开发者希望允许在Action名中使用斜线,则可设置该属性为true。  
  49.   
  50. struts.tag.altSyntax  
  51.   
  52. 该属性指定是否允许在Struts 2标签中使用表达式语法,因为通常都需要在标签中使用表达式语法,故此属性应该设置为true,该属性的默认值是true。  
  53.   
  54. struts.devMode  
  55.   
  56. 该属性设置Struts 2应用是否使用开发模式。如果设置该属性为true,则可以在应用出错时显示更多、更友好的出错提示。该属性只接受true和flase两个值,该属性的默认值是false。通常,应用在开发阶段,将该属性设置为true,当进入产品发布阶段后,则该属性设置为false。  
  57.   
  58. struts.i18n.reload  
  59.   
  60. 该属性设置是否每次HTTP请求到达时,系统都重新加载资源文件。该属性默认值是false。在开发阶段将该属性设置为true会更有利于开发,但在产品发布阶段应将该属性设置为false。  
  61.   
  62. 提示 开发阶段将该属性设置了true,将可以在每次请求时都重新加载国际化资源文件,从而可以让开发者看到实时开发效果;产品发布阶段应该将该属性设置为false,是为了提供响应性能,每次请求都需要重新加载资源文件会大大降低应用的性能。  
  63.   
  64. struts.ui.theme  
  65.   
  66. 该属性指定视图标签默认的视图主题,该属性的默认值是xhtml。  
  67.   
  68. struts.ui.templateDir  
  69.   
  70. 该属性指定视图主题所需要模板文件的位置,该属性的默认值是template,即默认加载template路径下的模板文件。  
  71.   
  72. struts.ui.templateSuffix  
  73.   
  74. 该属性指定模板文件的后缀,该属性的默认属性值是ftl。该属性还允许使用ftl、vm或jsp,分别对应FreeMarker、Velocity和JSP模板。  
  75.   
  76. struts.configuration.xml.reload  
  77.   
  78. 该属性设置当struts.xml文件改变后,系统是否自动重新加载该文件。该属性的默认值是false。  
  79.   
  80. struts.velocity.configfile  
  81.   
  82. 该属性指定Velocity框架所需的velocity.properties文件的位置。该属性的默认值为velocity.properties。  
  83.   
  84. struts.velocity.contexts  
  85.   
  86. 该属性指定Velocity框架的Context位置,如果该框架有多个Context,则多个Context之间以英文逗号(,)隔开。  
  87.   
  88. struts.velocity.toolboxlocation  
  89.   
  90. 该属性指定Velocity框架的toolbox的位置。  
  91.   
  92. struts.url.http.port  
  93.   
  94. 该属性指定Web应用所在的监听端口。该属性通常没有太大的用户,只是当Struts 2需要生成URL时(例如Url标签),该属性才提供Web应用的默认端口。  
  95.   
  96. struts.url.https.port  
  97.   
  98. 该属性类似于struts.url.http.port属性的作用,区别是该属性指定的是Web应用的加密服务端口。  
  99.   
  100. struts.url.includeParams  
  101.   
  102. 该属性指定Struts 2生成URL时是否包含请求参数。该属性接受none、get和all三个属性值,分别对应于不包含、仅包含GET类型请求参数和包含全部请求参数。  
  103.   
  104.   
  105. struts.custom.i18n.resources  
  106.   
  107. 该属性指定Struts 2应用所需要的国际化资源文件,如果有多份国际化资源文件,则多个资源文件的文件名以英文逗号(,)隔开。  
  108.   
  109.   
  110. struts.dispatcher.parametersWorkaround  
  111.   
  112. 对于某些Java EE服务器,不支持HttpServlet Request调用getParameterMap()方法,此时可以设置该属性值为true来解决该问题。该属性的默认值是false。对于WebLogic、Orion和OC4J服务器,通常应该设置该属性为true。  
  113.   
  114. struts.freemarker.manager.classname  
  115.   
  116. 该属性指定Struts 2使用的FreeMarker管理器。该属性的默认值是org.apache.struts2.views.freemarker.FreemarkerManager,这是Struts 2内建的FreeMarker管理器。  
  117.   
  118. struts.freemarker.wrapper.altMap  
  119.   
  120. 该属性只支持truefalse两个属性值,默认值是true。通常无需修改该属性值。  
  121.   
  122. struts.xslt.nocache  
  123.   
  124. 该属性指定XSLT Result是否使用样式表缓存。当应用处于开发阶段时,该属性通常被设置为true;当应用处于产品使用阶段时,该属性通常被设置为false。  
  125.   
  126. struts.configuration.files  
  127.   
  128. 该属性指定Struts 2框架默认加载的配置文件,如果需要指定默认加载多个配置文件,则多个配置文件的文件名之间以英文逗号(,)隔开。该属性的默认值为struts-default.xml,struts-plugin.xml,struts.xml,看到该属性值,读者应该明白为什么Struts 2框架默认加载struts.xml文件了。  
  129.   
  130. struts.objectFactory  
  131.   
  132. 该属性指定Struts 2中的action由哪个容器创建  



如果有错误的地方,欢迎指出。。。。。。。。好累。。。一起成长,学好英语,共勉。

分享到:
评论

相关推荐

    struts2 配置dtd 自动提示

    在配置Struts2时,通常会使用一个名为`struts.xml`的配置文件,该文件定义了应用程序的行为和组件。为了在开发环境中获得更好的代码辅助和提示,我们需要使IDE(例如Eclipse)理解`struts.xml`文件的结构,这通常...

    Struts2的DTD配置文件struts-2.3.dtd

    在Struts2中,`struts.xml`是核心配置文件,它定义了应用的行为、动作、结果和其他组件。为了在Eclipse这样的集成开发环境中获得代码提示和自动完成,我们需要引入DTD(文档类型定义)文件,例如`struts-2.3.dtd`。 ...

    不同版本的 struts2.dtd

    - Struts2 DTD 是XML文档类型定义,它规定了struts2配置文件(如struts.xml或struts-default.xml)的语法和元素。这些元素定义了Action、结果、拦截器等配置,使得开发者可以声明式地配置应用行为。 2. **struts-...

    Struts2的配置文件DTD解析

    本文将深入探讨Struts2配置文件的DTD(文档类型定义),以及如何使用这些配置元素。 首先,Struts2的配置文件基于DTD来解析和验证其结构。DTD是一套规则,用于定义XML文档的合法结构和元素。在Struts2中,配置文件...

    struts-2.1.dtd

    在Struts 2中,DTD(Document Type Definition)文件扮演着重要的角色,它们定义了配置文件的结构和规则,使得开发者能够按照规范编写配置文件来控制应用程序的行为。 首先,我们来看看`struts-2.0.dtd`。这个DTD...

    Struts2jar包及dtd文件

    在Struts2中,DTD文件用于验证Struts配置文件(struts.xml)的语法正确性。例如,`struts-default.dtd`包含了默认的Struts2配置元素和属性的定义,确保了开发者在编写配置文件时遵循了正确的规范。将这些DTD文件放在...

    struts2配置文件详细说明

    配置文件在Struts2中起着至关重要的作用,它定义了框架的行为、动作映射、拦截器和其他关键设置。以下是Struts2配置文件的一些核心元素和属性的详细说明: 1. **配置文件结构**: Struts2的配置通常存储在一个名为...

    struts2配置文件

    然后,我们创建Struts2的核心配置文件`struts2.xml`。这是一个XML文件,它定义了应用程序的行为和映射。例如: ```xml &lt;!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//...

    struts2 XML dtd

    标题"struts2 XML dtd"指的是Struts2框架中使用的XML配置文件所遵循的DTD文件。这些DTD文件定义了Struts2配置文件的结构和语法规则,确保配置信息的合法性。例如,`struts-default.xml`、`struts-plugin.xml`和`...

    struts-2.0.dtdstruts-2.0.dtdstruts-2.0.dtd

    本文将深入探讨Struts 2.0的相关知识点,包括DTD(Document Type Definition)的作用、Struts配置文件`struts.xml`的重要性和SSH2框架的搭建过程。 首先,`struts-2.0.dtd`是Struts 2.0的文档类型定义,它是XML文件...

    struts2配置文件以及代码示例

    ### Struts2配置文件及其代码示例解析 #### 一、Struts2概述 Struts2是一个基于MVC模式的开源Web应用框架,它继承了Struts1的优点,并且进行了大量的改进,支持拦截器、结果类型、动态方法调用等功能。在Struts2中...

    struts2配置文件详解

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

    struts-config.dtd struts 配置文件dtd文档spring 文档

    Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with ... The ASF licenses this file to You under the Apache License,...

    struts2 配置文件宝典

    Struts2的配置文件遵循DTD(Document Type Definition)标准,用于定义文档的结构和元素类型。文章中的示例引用了Struts官方提供的DTD文件`struts-2.0.dtd`,这确保了配置文件的正确性和兼容性。配置文件主要由`...

    Struts 2 配置文件

    Struts 2 配置文件解析与深度剖析 在Java Web开发领域,Struts 2 框架作为MVC(Model-View-Controller)架构模式的杰出代表,以其强大的功能和灵活的配置赢得了广大开发者的青睐。Struts 2 的核心配置文件struts....

    tiles+struts2配置文件

    3. **配置struts.xml**:在Struts2的主配置文件struts.xml中,我们需要声明Tiles的配置文件路径,如下所示: ```xml &lt;constant name="struts.tiles.config.file" value="classpath:tiles-defs.xml"/&gt; ``` 这里的...

    Struts2配置文件自动提示

    在使用Struts2进行开发时,配置文件的管理是至关重要的,因为它定义了应用的行为和组件间的交互。然而,手动配置可能会导致错误和效率低下。本教程将指导你如何配置Struts2的配置文件,以实现IDE中的自动提示功能,...

    Struts所有jar包、DTD文件(struts-1.2.9-bin.rar)

    例如,`struts-config_1_2.dtd`定义了`struts-config.xml`的结构,确保开发者正确地编写配置文件。 这个压缩包可能包含以下DTD文件: 1. **struts-config_1_2.dtd**:定义了`struts-config.xml`的元素和属性。 2. ...

    struts.xml配置文件详解

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

Global site tag (gtag.js) - Google Analytics