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#

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值