`

Struts2的常量详解

阅读更多

通常struts2加载struts2常量的顺序如下:

 

1. struts-default.xml:该文件保存在struts2-core-2.0.6.jar文件中。
2. struts-plugin.xml:该文件保存在struts2-Xxx-2.0.6.jar等Struts2插件JAR文件中。
3. struts.xml:该文件是Web应用默认的Struts2配置文件。
4. struts.properties:该文件是Web应用默认的Struts2配置文件。
5. web.xml:该文件是Web应用的配置文件。

如果在多个文件中配置了同一个Struts2常量,则后一个文件中的配置的常量值会覆盖前面文件中配置的常量值。
在不同文件中配置常量的方式是不一样的,但不管哪个文件中,配置Struts2常量都要指定两个属性:常量name和常量value。

推荐在struts.xml文件中配置Struts2常量。

 

启动Tomcat时在控制台可看到上述配置文件的加载顺序:

 

 

此处只加载了前三个配置文件,这是在常量 struts.configuration.files 中配置的。 该属性指定 Struts 2 框架默认加载的配置文件,如果需要指定默认加载多个配置文件,则多个配置文件的文件名之间以英文逗号( , )隔开。该属性的默认值为 struts- default.xml,struts-plugin.xml,struts.xml ,这就是上图中加载的三个配置文件。  

 

 

Struts2常量一览:

 

struts.configuration 

该属性指定加载 Struts 2 配置文件的配置文件管理器。该属性的默认值是 org.apache.Struts2.config.DefaultConfiguration ,这是 Struts 2 默认的配置文件管理器。如果需要实现自己的配置管理器,开发者则可以实现一个实现 Configuration 接口的类,该类可以自己加载 Struts 2 配置文件。

 

struts.locale

指定 Web 应用的默认 Locale


struts.i18n.encoding

指定 Web 应用的默认编码集。该属性对于处理中文请求参数非常有用,对于获取中文请求参数值,应该将该属性值设置为 GBK 或者 GB2312
提示:当设置该参数为 GBK 时,相当于调用 HttpServletRequest setCharacterEncoding 方法。

 

struts.objectFactory

指定 Struts 2 默认的 ObjectFactory Bean ,该属性默认值是 spring


struts.objectFactory.spring.autoWrite

指定 Spring 框架的自动装配模式,该属性的默认值是 name ,即默认根据 Bean name 属性自动装配。


struts.objectFactory.spring.useClassCache

该属性指定整合 Spring 框架时,是否缓存 Bean 实例,该属性只允许使用 true false 两个属性值,它的默认值是 true 。通常不建议修改该属性值。

 

struts.objectTypeDeterminer

该属性指定 Struts 2 的类型检测机制,通常支持 tiger notiger 两个属性值。

 

struts.multipart.parser

该属性指定处理 multipart/form-data MIME 类型(文件上传)请求的框架,该属性支持 cos pell jakarta 等属性值,即 分别对应使用 cos 的文件上传框架、 pell 上传及 common-fileupload 文件上传框架。该属性的默认值为 jakarta
注意 如果需要使用 cos 或者 pell 的文件上传方式,则应该将对应的 JAR 文件复制到 Web 应用中。例如,使用 cos 上传方式,则需要自己下载 cos 框架的 JAR 文件,并将该文件放在 WEB-INF/lib 路径下。


struts.multipart.saveDir

该属性指定上传文件的临时保存路径,该属性的默认值是 javax.servlet.context.tempdir


struts.multipart.maxSize

该属性指定 Struts 2 文件上传中整个请求内容允许的最大字节数。


struts.custom.properties

该属性指定 Struts 2 应用加载用户自定义的属性文件,该自定义属性文件指定的属性不会覆盖 struts.properties 文件中指定的属性。如果需要加载多个自定义属性文件,多个自定义属性文件的文件名以英文逗号( , )隔开。


struts.mapper.class

指定将 HTTP 请求映射到指定 Action 的映射器, Struts 2 提供了默认的映射器: org.apache.struts2.dispatcher.mapper.DefaultActionMapper 。默认映射器根据请求的前缀与 Action name 属性完成映射。


struts.action.extension

该属性指定需要 Struts 2 处理的请求后缀,该属性的默认值是 action ,即所有匹配 *.action 的请求都由 Struts 2 处理。如果用户需要指定多个请求后缀,则多个后缀之间以英文逗号( , )隔开。


struts.serve.static

该属性设置是否通过 JAR 文件提供静态内容服务,该属性只支持 true false 属性值,该属性的默认属性值是 true


struts.serve.static.browserCache

该属性设置浏览器是否缓存静态内容。当应用处于开发阶段时,我们希望每次请求都获得服务器的最新响应,则可设置该属性为 false


struts.enable.DynamicMethodInvocation

该属性设置 Struts 2 是否支持动态方法调用,该属性的默认值是 true 。如果需要关闭动态方法调用,则可设置该属性为 false

 

struts.enable.SlashesInActionNames

该属性设置 Struts 2 是否允许在 Action 名中使用斜线,该属性的默认值是 false 。如果开发者希望允许在 Action 名中使用斜线,则可设置该属性为 true


struts.tag.altSyntax

该属性指定是否允许在 Struts 2 标签中使用表达式语法,因为通常都需要在标签中使用表达式语法,故此属性应该设置为 true ,该属性的默认值是 true


struts.devMode

该属性设置 Struts 2 应用是否使用开发模式。如果设置该属性为 true ,则可以在应用出错时显示更多、更友好的出错提示。该属性只接受 true flase 两个值,该属性的 默认值是 false 。通常,应用在开发阶段,将该属性设置为 true ,当进入产品发布阶段后,则该属性设置为 false


struts.i18n.reload

该属性设置是否每次 HTTP 请求到达时,系统都重新加载资源文件。该属性默认值是 false 。在开发阶段将该属性设置为 true 会更有利于开发,但在产品发布阶段应将该属性设置为 false
提示:开发阶段将该属性设置了 true ,将可以在每次请求时都重新加载国际化资源文件,从而可以让开发者看到实时开发效果;产品发布阶段应该将该属性设置为 false ,是为了提供响应性能,每次请求都需要重新加载资源文件会大大降低应用的性能。


struts.ui.theme

该属性指定视图标签默认的视图主题,该属性的默认值是 xhtml


struts.ui.templateDir

该属性指定视图主题所需要模板文件的位置,该属性的默认值是 template ,即默认加载 template 路径下的模板文件。


struts.ui.templateSuffix

该属性指定模板文件的后缀,该属性的默认属性值是 ftl 。该属性还允许使用 ftl vm jsp ,分别对应 FreeMarker Velocity JSP 模板。


struts.configuration.xml.reload

该属性设置当 struts.xml 文件改变后,系统是否自动重新加载该文件。该属性的默认值是 false


struts.velocity.configfile

该属性指定 Velocity 框架所需的 velocity.properties 文件的位置。该属性的默认值为 velocity.properties


struts.velocity.contexts

该属性指定 Velocity 框架的 Context 位置,如果该框架有多个 Context ,则多个 Context 之间以英文逗号( , )隔开。


struts.velocity.toolboxlocation

该属性指定 Velocity 框架的 toolbox 的位置。


struts.url.http.port

该属性指定 Web 应用所在的监听端口。该属性通常没有太大的用处,只是当 Struts 2 需要生成 URL 时(例如 Url 标签),该属性才提供 Web 应用的默认端口。


struts.url.https.port

该属性类似于 struts.url.http.port 属性的作用,区别是该属性指定的是 Web 应用的加密服务端口。


struts.url.includeParams

该属性指定 Struts 2 生成 URL 时是否包含请求参数。该属性接受 none get all 三个属性值,分别对应于不包含、仅包含 GET 类型请求参数和包含全部请求参数。

 

struts.custom.i18n.resources

该属性指定 Struts 2 应用所需要的国际化资源文件,如果有多份国际化资源文件,则多个资源文件的文件名以英文逗号( , )隔开。

 

struts.dispatcher.parametersWorkaround

对于某些 Java EE 服务器,不支持 HttpServlet Request 调用 getParameterMap() 方法,此时可以设置该属性值为 true 来解决该问题。该属性的默认值是 false 。对于 WebLogic Orion OC4J 服务器,通常应该设置该属性为 true


struts.freemarker.manager.classname

该属性指定 Struts 2 使用的 FreeMarker 管理器。该属性的默认值是 org.apache.struts2.views.freemarker.FreemarkerManager ,这是 Struts 2 内建的 FreeMarker 管理器。

struts.freemarker.wrapper.altMap

该属性只支持 true false 两个属性值,默认值是 true 。通常无需修改该属性值。


struts.xslt.nocache

该属性指定 XSLT Result 是否使用样式表缓存。当应用处于开发阶段时,该属性通常被设置为 true ;当应用处于产品使用阶段时,该属性通常被设置为 false


struts.configuration.files

该属性指定 Struts 2 框架默认加载的配置文件,如果需要指定默认加载多个配置文件,则多个配置文件的文件名之间以英文逗号( , )隔开。该属性的默认值为 struts- default.xml,struts-plugin.xml,struts.xml ,看到该属性值,读者应该明白为什么 Struts 2 框架默认加载 struts.xml 文件了。

 

Struts2常量的具体用法实例

写道
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>
<!-- 指定Web应用的默认编码集,相当于调用HttpServletRequest的setCharacterEncoding方法 -->
<constant name="struts.i18n.encoding" value="UTF-8" />

<!--
该属性指定需要Struts 2处理的请求后缀,该属性的默认值是action,即所有匹配*.action的请求都由Struts2处理。
如果用户需要指定多个请求后缀,则多个后缀之间以英文逗号(,)隔开。
-->
<constant name="struts.action.extension" value="do" />

<!-- 设置浏览器是否缓存静态内容,默认值为true(生产环境下使用),开发阶段最好关闭 -->
<constant name="struts.serve.static.browserCache" value="false" />

<!-- 当struts的配置文件修改后,系统是否自动重新加载该文件,默认值为false(生产环境下使用),开发阶段最好打开 -->
<constant name="struts.configuration.xml.reload" value="true" />

<!-- 开发模式下使用,这样可以打印出更详细的错误信息 -->
<constant name="struts.devMode" value="true" />

<!-- 默认的视图主题 -->
<constant name="struts.ui.theme" value="simple" />

<!-- spring 托管 -->
<constant name="struts.objectFactory" value="spring" />

<!--
指定加载struts2配置文件管理器,默认为org.apache.struts2.config.DefaultConfiguration
开发者可以自定义配置文件管理器,该类要实现Configuration接口,可以自动加载struts2配置文件。
-->
<constant name="struts.configuration"
value="org.apache.struts2.config.DefaultConfiguration" />

<!-- 设置默认的locale和字符编码 -->
<constant name="struts.locale" value="zh_CN" />
<constant name="struts.i18n.encoding" value="GBK" />

<!-- 指定Struts的工厂类 -->
<constant name="struts.objectFactory" value="spring"></constant>

<!--
指定spring框架的装配模式,装配方式有: name, type, auto, and constructor (name
是默认装配模式)
-->
<constant name="struts.objectFactory.spring.autoWire" value="name" />

<!-- 该属性指定整合spring时,是否对bean进行缓存,值为true or false,默认为true -->
<cosntant name="struts.objectFactory.spring.useClassCache" />

<!-- 指定类型检查,包含tiger和notiger -->
<cosntant name="struts.objectTypeDeterminer" value="tiger" />

<!-- 该属性指定处理 MIME-type multipart/form-data,文件上传 -->
<constant name="struts.multipart.parser" value="cos" />
<constant name="struts.multipart.parser" value="pell" />
<constant name="struts.multipart.parser" value="jakarta" />

<!-- 指定上传文件时的临时目录,默认使用 javax.servlet.context.tempdir -->
<constant name="struts.multipart.saveDir" value="/tmpuploadfiles" />

<!-- 该属性指定Struts 2文件上传中整个请求内容允许的最大字节数 -->
<constant name="struts.multipart.maxSize" value="2097152" />

<!--
该属性指定Struts2应用加载用户自定义的属性文件,该自定义属性文件指定的属性不会覆盖
struts.properties文件中指定的属性。如果需要加载多个自定义属性文件,多个自定义属性文
件的文件名以英文逗号(,)隔开。(也就是说不要改写struts.properties!)
-->
<constant name="struts.custom.properties"
value="application,org/apache/struts2/extension/custom" />

<!-- 指定请求url与action映射器,默认为org.apache.struts2.dispatcher.mapper.DefaultActionMapper -->
<constant name="struts.mapper.class" value="org.apache.struts2.dispatcher.mapper.DefaultActionMapper" />

<!-- 指定action的后缀,默认为action -->
<constant name="struts.action.extension" value="do" />

<!-- 被 FilterDispatcher使用指定浏览器是否缓存静态内容,测试阶段设置为false,发布阶段设置为true. -->
<constant name="struts.serve.static.browserCache" value="true" />

<!-- 设置是否支持动态方法调用,true为支持,false不支持. -->
<constant name="struts.enable.DynamicMethodInvocation" value="true" />

<!-- 设置是否可以在action中使用斜线,默认为false不可以,想使用需设置为true. -->
<constant name="struts.enable.SlashesInActionNames" value="true" />

<!-- 是否允许使用表达式语法,默认为true. -->
<constant name="struts.tag.altSyntax" value="true" />

<!-- 设置当struts.xml文件改动时,是否重新加载 -->
<cosntant name="struts.configuration.xml.reload" value="true" />

<!-- 设置struts是否为开发模式,默认为false,测试阶段一般设为true. -->
<cosntant name="struts.devMode" value="true" />

<!-- 设置是否每次请求,都重新加载资源文件,默认值为false. -->
<cosntant name="struts.i18n.reload" value="false" />

<!-- 标准的UI主题,默认的UI主题为xhtml,可以为simple,xhtml或ajax -->
<cosntant name="struts.ui.theme" value="xhtml" />

<!-- 模板目录 -->
<cosntant name="struts.ui.templateDir" value="template" />

<!-- 设置模板类型. 可以为 ftl, vm, or jsp -->
<cosntant name="struts.ui.templateSuffix" value="ftl" />

<!-- 定位velocity.properties 文件. 默认velocity.properties -->
<cosntant name="struts.velocity.configfile" value="velocity.properties" />

<!-- 设置velocity的context. -->
<cosntant name="struts.velocity.contexts" value="...." />

<!-- 定位toolbox -->
<cosntant name="struts.velocity.toolboxlocation" value="...." />

<!-- 指定web应用的端口 -->
<cosntant name="struts.url.http.port" value="80" />

<!-- 指定加密端口 -->
<cosntant name="struts.url.https.port" value="443" />

<!-- 设置生成url时,是否包含参数.值可以为: none,get or all -->
<cosntant name="struts.url.includeParams" value="get" />

<!-- 设置要加载的国际化资源文件,以逗号分隔. -->
<cosntant name="struts.custom.i18n.resources" value="application" />

<!-- 对于一些web应用服务器不能处理HttpServletRequest.getParameterMap(),
像 WebLogic,Orion, and OC4J等,须设置成true,默认为false. -->
<cosntant name="struts.dispatcher.parametersWorkaround" value="false" />

<!-- 指定freemarker管理器 -->
<cosntant name="struts.freemarker.manager.classname" value="org.apache.struts2.views.freemarker.FreemarkerManager" />

<!-- 设置是否对freemarker的模板设置缓存,效果相当于把template拷贝到 WEB_APP/templates. -->
<cosntant name="struts.freemarker.templatesCache" value="false" />

<!-- 通常不需要修改此属性. -->
<cosntant name="struts.freemarker.wrapper.altMap" value="true" />

<!-- 指定xslt result是否使用样式表缓存.开发阶段设为true,发布阶段设为false. -->
<cosntant name="struts.xslt.nocache" value="false" />

<!-- 设置struts自动加载的文件列表. -->
<cosntant name="struts.configuration.files" value="struts-default.xml,struts-plugin.xml,struts.xml" />

<!-- 设定是否一直在最后一个slash之前的任何位置选定namespace. -->
<cosntant name="struts.mapper.alwaysSelectFullNamespace" value="false" />
</struts>

 

 

文章转自:http://riddickbryant.iteye.com/blog/557373#

分享到:
评论

相关推荐

    struts2常量详解

    本文将深入探讨Struts2中的常量配置,这些常量在框架的运行时扮演着至关重要的角色。 首先,我们要了解Struts2配置文件的层次结构。主要有以下几个核心配置文件: 1. **struts-default.xml**:这是Struts2核心库中...

    struts2常量设置详解 struts2常量设置详解

    ### Struts2常量设置详解 #### 一、概述 在Struts2框架中,配置文件`struts.properties`用于定义一系列重要的系统级配置项,这些配置项对框架的行为模式和功能实现起着至关重要的作用。本文将详细介绍该文件中几个...

    Struts2配置精要之常量constant配置详解(包括零配置Convention 的常量)

    本文将深入探讨Struts2中的常量配置,包括基本的XML配置以及零配置的Convention模式下的常量设定。 首先,让我们了解Struts2框架中的常量配置。这些常量定义在`struts-default.xml`和`struts-plugin.xml`等配置文件...

    Struts2的常量配置

    ### Struts2的常量配置解析 #### 引言 在Java Web开发中,Struts2框架因其灵活性和强大的功能而被广泛采用。Struts2的配置灵活性体现在其丰富的常量配置选项上,这些配置项可以调整框架的行为,优化应用程序性能,...

    Struts2常用常量.doc

    ### Struts2常用常量详解 #### 一、概述 Struts2是一个基于MVC设计模式的开源Java Web框架,它极大地简化了Web应用程序的开发流程,并提供了丰富的插件支持和灵活的配置选项。本文将重点介绍Struts2中常用的配置...

    Struts2内容整理

    Struts2 框架详解 Struts2 是一个基于 Java Servlet 技术的开源 web 应用程序框架,它提供了一个灵活、可扩展的解决方案来构建企业级 web 应用程序。Struts2 框架的核心是 Action,Action 是一个包含了业务逻辑的 ...

    struts2配置文件详解

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

    Struts2快速学习步骤

    本章学习目标  struts2 的概念和作用  struts2 的HelloWorld  简单分析struts2 的运行流程  struts2 配置文件加载 ... struts2 常量文件修改  Action 动作类的三种写法  Action 动作类的三种访问方式

    Struts2各配置文件详解.doc

    这个文件用于定义Struts2框架的常量,比如全局错误页面、应用的字符编码等。这些常量可以在整个应用范围内被访问。 6)web.xml 虽然不是Struts2特有的配置文件,但`web.xml`在Servlet容器中定义了Struts2 Filter的...

    Struts2配置文件详解

    5. **常量(constant)**:`&lt;constant&gt;`标签用于设置Struts2的全局配置参数,这些参数会影响整个应用程序的行为。 6. **类型转换(type-conversion)**:Struts2提供了一种机制,可以自动将HTTP请求参数转换为...

    struts 2详解

    本详解将深入探讨Struts 2的核心概念、架构、配置以及实际应用。 一、Struts 2的核心概念 1. **Action类**:Action类是业务逻辑的载体,处理用户请求并返回结果。每个Action类对应一个URL,用户通过HTTP请求触发...

    struts 2完全学习手册

    ### Struts 2完全学习手册知识点详解 #### Struts 2简介 Struts 2是Struts框架的一个重要分支,它继承了Struts 1.x的一些特性,并在此基础上进行了大幅度的改进与扩展,使之成为了一个更为强大、灵活的Web开发框架...

    struts2详解

    ### Struts2详解 #### 一、Struts2概述与工作原理 Struts2是一个用于构建企业级Java Web应用的强大框架。它继承了Struts1的一些特性,并在此基础上进行了改进和扩展,支持更加灵活和强大的功能。Struts2基于MVC...

    strtus2常量

    ### 常量详解 下面是一些关键的Struts2常量及其作用: 1. **`struts.i18n.encoding`**:设置Web应用的默认编码集,这对应于调用`HttpServletRequest.setCharacterEncoding()`方法。例如,`UTF-8`确保了对各种语言...

    struts2核心配置文件

    ### Struts2核心配置文件详解 #### 一、概述 Struts2框架是Java Web开发领域内一个重要的轻量级框架,它简化了基于MVC(Model-View-Controller)设计模式的应用程序开发过程。在Struts2框架中,有两个核心配置文件...

    Struts2(一)

    - **常量配置**:Struts2提供了一系列预定义的常量,这些常量存储在`default.properties`文件中,可通过在`struts.xml`文件中使用`&lt;constant&gt;`元素或者创建`struts.properties`文件等方式覆盖默认值。 - **过滤器...

    Struts2 HelloWorld

    Struts2 HelloWorld 示例详解 Struts2 是一个开源的 MVC(Model-View-Controller)框架,用于构建基于Java的企业级Web应用程序。它继承了Struts1的优点并解决了其存在的问题,提供了更强大的功能和更好的性能。在...

Global site tag (gtag.js) - Google Analytics