服务器之家:专注于服务器技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服务器之家 - 编程语言 - JAVA教程 - Struts 2中的constant配置详解

Struts 2中的constant配置详解

2020-06-16 11:18mdxy-dxy JAVA教程

通过对这些属性的配置,可以改变Struts 2 框架的一些默认行为,这些配置可以在struts.xml文件中完成,也可以在struts.properties文件中完成

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

2.<constant name="struts.i18n.reload" value="false"/>
该属性设置是否每次HTTP请求到达时,系统都重新加载资源文件。该属性默认值是false。在开发阶段将该属性设置为true会更有利于开发, 但在产品发布阶段应将该属性设置为false。

3.<constant name="struts.custom.i18n.resources" value="application"/>
该属性指定Struts 2应用所需要的国际化资源文件,如果有多份国际化资源文件,则多个资源文件的文件名以英文逗号(,)隔开。

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

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

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

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

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

8.<constant name="struts.continuations.package" value=""/>
含有Actions的完整连续的package名称。

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

11.<constant name="struts.serve.static.browserCache" value="false"/>
该属性设置浏览器是否缓存静态内容。当应用处于开发阶段时,我们希望每次请求都获得服务器的最新响应,则可设置该属性为false。

12.<constant name="struts.enable.DynamicMethodInvocation" value="false"/>
该属性设置Struts 2是否支持动态方法调用,该属性的默认值是true。如果需要关闭动态方法调用,则可设置该属性为false。

13.<constant name="struts.enable.SlashesInActionNames" value="false"/>
该属性设置Struts 2是否允许在Action名中使用斜线,该属性的默认值是false。如果开发者希望允许在Action名中使用斜线,则可设置该属性为true。

14.<constant name="struts.tag.altSyntax" value="true"/>
该属性指定是否允许在Struts 2标签中使用表达式语法,因为通常都需要在标签中使用表达式语法,故此属性应该设置为true,该属性的默认值是true。

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

16.<constant name="struts.ui.theme" value="xhtml"/>
该属性指定视图标签默认的视图主题,该属性的默认值是xhtml,可以为simple,xhtml或ajax。

17.<constant name="struts.ui.templateDir" value="template"/>
该属性指定视图主题所需要模板文件的位置,该属性的默认值是template,即默认加载template路径下的模板文件。

18.<constant name="struts.ui.templateSuffix" value="ftl"/>
该属性指定模板文件的后缀,该属性的默认属性值是ftl。该属性还允许使用ftl、vm或jsp,分别对应FreeMarker、 Velocity和JSP模板。

19.<constant name="struts.velocity.configfile" value="velocity.properties"/>
该属性指定Velocity框架所需的velocity.properties文件的位置。该属性的默认值为 velocity.properties。

20.<constant name="struts.velocity.contexts" value=""/>
该属性指定Velocity框架的Context位置,如果该框架有多个Context,则多个Context之间以英文逗号(,)隔开。

21.<constant name="struts.velocity.toolboxlocation" value=""/>
该属性指定Velocity框架的toolbox的位置。

22.<constant name="struts.url.http.port" value="80"/>
该属性指定Web应用所在的监听端口。该属性通常没有太大的用处,只是当Struts 2需要生成URL时(例如Url标签),该属性才提供Web应用的默认端口。

23.<constant name="struts.url.https.port" value="443"/>
该属性类似于struts.url.http.port属性的作用,区别是该属性指定的是Web应用的加密服务端口。

24.<constant name="struts.url.includeParams" value="none|get|all"/>
该属性指定Struts 2生成URL时是否包含请求参数。该属性接受none、get和all三个属性值,分别对应于不包含、仅包含GET类型请求参数和包含全部请求参数。

25.<constant name="struts.dispatcher.parametersWorkaround" value="false"/>
对于某些Java EE服务器,不支持HttpServlet Request调用getParameterMap()方法,此时可以设置该属性值为true来解决该问题。该属性的默认值是false。对于 WebLogic、Orion和OC4J服务器,通常应该设置该属性为true。

26.<constant name="struts.freemarker.manager.classname" value=""/>
该属性指定Struts 2使用的FreeMarker管理器。该属性的默认值是org.apache.struts2.views.freemarker.FreemarkerManager,这是 Struts 2内建的FreeMarker管理器。

27.<constant name="struts.freemarker.wrapper.altMap" value="true"/>
该属性只支持true和false两个属性值,默认值是true。通常无需修改该属性值。

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

29.<constant name="struts.xslt.nocache" value="false"/>
该属性指定XSLT Result是否使用样式表缓存。当应用处于开发阶段时,该属性通常被设置为true;当应用处于产品使用阶段时,该属性通常被设置为false。

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

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

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

34.<constant name="struts.multipart.maxSize" value="2097152"/>
multipart请求信息的最大尺寸(文件上传用,该属性指定Struts 2文件上传中整个请求内容允许的最大字节数)。

35.<constant name="struts.multipart.parser" value="cos"/>
该属性指定处理 MIME-type multipart/form-data,文件上传(cos、pell、jakarta)
专为multipart请求信息使用的org.apache.struts2.dispatcher.multipart.MultiPartRequest解析器接口(文件上传用)。

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

37.<constant name="struts.objectFactory" value="spring" />
该属性指定Struts 2中的Action由Spring容器创建。

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

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

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

struts2中的constant配置详解

本文主要讲解一下struts2中的constant常量配置,内容主要来自于互联网的整理。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
<?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应用的默认编码集.该属性对于处理中文请求参数非常有用,对于获取中文请求参数值,应该将该属性值设置为GBK或者GB2312
      提示:当设置该参数为GBK时,相当于调用HttpServletRequest的setCharacterEncoding方法>
<constant name="struts.i18n.encoding" value="UTF-8" />
 
<!--指定Struts2默认的ObjectFactory Bean,该属性默认值是spring.>
<constant name="struts.objectFactory" value="spring" />
 
<!--指定Spring框架的自动装配模式,该属性的默认值是name,即默认根据Bean的name属性自动装配. >
<constant name="struts.objectFactory.spring.autoWire" value="name" />
 
<!--该属性指定整合Spring框架时,是否缓存Bean实例,该属性只允许使用true和false两个属性值,它的默认值是true.通常不建议修改该属性值.>
<constant name="struts.objectFactory.spring.useClassCache" value="true" />
 
<!--该属性指定处理multipart/form-data的MIME类型(文件上传)请求的框架,该属性支持cos,pell和jakarta等属性值,即分别对应使用cos的文件上传框架,
   pell上传及common-fileupload文件上传框架,该属性的默认值为jakarta.
   注意:如果需要使用cos或者pell的文件上传方式,则应该将对应的JAR文件复制到Web应用中.例如,使用cos上传方式,则需要自己下载cos框架的JAR文件,
   并将该文件放在WEB-INF/lib路径下. >
<constant name="struts.multipart.parser" value="jakarta" />
 
<!--该属性指定上传文件的临时保存路径,该属性的默认值是javax.servlet.context.tempdir. >
<constant name="struts.multipart.saveDir" value="" />
 
<!--该属性指定Struts 2文件上传中整个请求内容允许的最大字节数. >
<constant name="struts.multipart.maxSize" value="1000000000000" />
 
<!--该属性指定需要Struts 2处理的请求后缀,该属性的默认值是action,即所有匹配*.action的请求都由Struts 2处理.
如果用户需要指定多个请求后缀,则多个后缀之间以英文逗号(,)隔开. >
<constant name="struts.action.extension" value="do" />
 
<!--该属性设置是否通过JAR文件提供静态内容服务,该属性只支持true和false属性值,该属性的默认属性值是true. >
<constant name="struts.serve.static" value="true" />
 
<!--该属性设置浏览器是否缓存静态内容.当应用处于开发阶段时,我们希望每次请求都获得服务器的最新响应,则可设置该属性为false. >
<constant name="struts.serve.static.browserCache" value="true" />
 
<!--该属性设置Struts 2应用是否使用开发模式.如果设置该属性为true,则可以在应用出错时显示更多、更友好的出错提示.
该属性只接受true和flase两个值,该属性的默认值是false.通常,应用在开发阶段,将该属性设置为true,当进入产品发布阶段后,则该属性设置为false. >
<constant name="struts.devMode" value="false" />
 
<!--该属性设置是否每次HTTP请求到达时,系统都重新加载资源文件(允许国际化文件重载).该属性默认值是false.
在开发阶段将该属性设置为true会更有利于开发,但在产品发布阶段应将该属性设置为false.
提示:开发阶段将该属性设置了true,将可以在每次请求时都重新加载国际化资源文件,从而可以让开发者看到实时开发效果;
产品发布阶段应该将该属性设置为false,是为了提供响应性能,每次请求都需要重新加载资源文件会大大降低应用的性能. >
<constant name="struts.i18n.reload" value="false" />
 
<!--该属性指定视图标签默认的视图主题,该属性的默认值是xhtml. >
<constant name="struts.ui.theme" value="simple" />
 
<!--该属性指定模板文件的后缀,该属性的默认属性值是ftl.该属性还允许使用ftl、vm或jsp,分别对应FreeMarker、Velocity和JSP模板. >
<constant name="struts.ui.templateSuffix" value="ftl" />
 
<!--该属性设置当struts.xml文件改变后,系统是否自动重新加载该文件.该属性的默认值是false. >
<constant name="struts.configuration.xml.reload" value="false" />
 
<!--该属性指定Struts 2应用所需要的国际化资源文件,如果有多份国际化资源文件,则多个资源文件的文件名以英文逗号(,)隔开. >
<constant name="struts.custom.i18n.resources" value="nationz" />
 
<!--对于某些Java EE服务器,不支持HttpServlet Request调用getParameterMap()方法,此时可以设置该属性值为true来解决该问题.
 该属性的默认值是false.
 对于WebLogic、Orion和OC4J服务器,通常应该设置该属性为true. >
<constant name="struts.dispatcher.parametersWorkaround" value="false" />
 
<!--指定是否缓存FreeMarker模版.默认值false.>
<constant name="struts.freemarker.templatesCache" value="true" />
 
<!--该属性只支持true和false两个属性值,默认值是true.通常无需修改该属性值. >
<constant name="struts.freemarker.wrapper.altMap" value="true" />
 
<!--该属性指定XSLT Result是否使用样式表缓存.当应用处于开发阶段时,该属性通常被设置为true;当应用处于产品使用阶段时,
该属性通常被设置为false. >
<constant name="struts.xslt.nocache" value="false" />
 
<!--该属性指定Struts 2框架默认加载的配置文件,如果需要指定默认加载多个配置文件,则多个配置文件的文件名之间以英文逗号(,)隔开.
该属性的默认值为struts-default.xml,truts-plugin.xml,struts.xml,看到该属性值,所以应该明白为什么Struts 2框架默认加载struts.xml文件了. >
<constant name="struts.configuration.files" value="struts-default.xml,struts-plugin.xml" />
 
<!--设置映射器是否总是选择完整的名称空间.该属性的默认值时false.>
<constant name="struts.mapper.alwaysSelectFullNamespace" value="false" />
 
<!--设置Convention插件定位视图资源的根路径.默认值为/WEB-INF/content>
<constant name="struts.convention.result.path" value="/WEB-INF/content/" />
 
<!--Convention插件以该常量指定包作为根包>
<constant name="struts.convention.action.package" value="default" />
 
<!--是否从包中搜索Action>
<constant name="struts.convention.action.disableScanning" value="false"/>
    
<!-- 官方只说明在jboss下需要设置,情况不明 -->
<constant name="struts.convention.exclude.parentClassLoader" value="true" />
<constant name="struts.convention.action.fileProtocols" value="jar,zip" />
 
<!--包括哪些jar包中的action.逗号分割字符串.>
<constant name="struts.convention.action.includeJars" value=".*?/_wl_cls_gen.*?jar(!/)?" />
 
<!--确定搜索包的路径.只要是结尾为action的包都要搜索.>
<constant name="struts.convention.package.locators" value="action" />
 
</struts>

Struts2 - 常用的constant总结

见注释

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
  "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
  "http://struts.apache.org/dtds/struts-2.3.dtd">
 
<struts>
 
  <!-- 把它设置为开发模式,发布时要设置为false -->
  <constant name="struts.devMode" value="true" />
  <!-- 设置在class被修改时是否热加载,发布时要设置为false -->
  <constant name="struts.convention.classes.reload" value="true"/>
  <!-- 自动动态方法的调用,使用这个设置后可以这样调用:action!method -->
  <constant name="struts.enable.DynamicMethodInvocation" value="true" />
  <!-- 指定jsp文件所在的目录地址 -->
  <constant name="struts.convention.result.path" value="/WEB-INF/content/" />
  <!-- 使用struts-default默认的转换器,如果是rest的使用:rest-default,rest需要rest的jar插件 -->
  <constant name="struts.convention.default.parent.package" value="struts-default"/>
  <!-- 用于配置包名后缀。默认为action、actions、struts-->
  <constant name="struts.convention.package.locators" value="actions" />
  <!-- 用于配置类名后缀,默认为Action,设置后,Struts2只会去找这种后缀名的类做映射 -->
  <constant name="struts.convention.action.suffix" value="Action"/>
  <!-- 设置即使没有@Action注释,依然创建Action映射。默认值是false。因为Convention-Plugin是约定优于配置的风格,
    可以不通过注解根据预先的定义就能访问相应Action中的方法 -->
  <constant name="struts.convention.action.mapAllMatches" value="true"/>
  <!-- 自定义jsp文件命名的分隔符 -->
  <constant name="struts.convention.action.name.separator" value="-" />
  <!-- 国际化资源文件名称 -->
  <constant name="struts.custom.i18n.resources" value="i18n" />
  <!-- 是否自动加载国际化资源文件 -->
  <constant name="struts.i18n.reload" value="true" />
  <!-- 浏览器是否缓存静态内容 -->
  <constant name="struts.serve.static.browserCache" value="false" />
   <!-- 上传文件大小限制设置 -->
  <constant name="struts.multipart.maxSize" value="-1" />
  <!-- 主题,将值设置为simple,即不使用UI模板。这将不会生成额外的html标签 -->
  <constant name="struts.ui.theme" value="simple" />
  <!-- 编码格式 -->
  <constant name="struts.i18n.encoding" value="UTF-8" />
 
</struts>

基础Constants

struts.devMode 可选值true,false (默认false),在开发模式下,struts2的动态重新加载配置和资源文件的功能会默认生效。同时开发模式下也会提供更完善的日志支持。
struts.i18n.reload 可选值true,false(默认值依赖于struts.devMode),是否自动重新加载本地的资源文件。
struts.i18n.encoding 主要用于设置请求编码(默认值(UTF-8)) ,Head和Include标签的解析编码。 资源和配置文件的解析编码。
struts.configuration.xml.reload 可选值true,false(默认值依赖于struts.devMode)是否自动重新加载XML配置文件
struts.action.extension 设置struts的Action请求的后缀,支持多个时以逗号隔开。
struts.action.excludePattern 设置struts所排除的url(通过正则表达式匹配)(支持多个,以逗号隔开)
struts.tag.altSyntax 可选值true,false(默认true) 是否支持ognl表达式
struts.url.http.port 设置生成URL所对应的http端口
struts.url.https.port 设置生成URL所对应的https端口
struts.url.includeParams 可选值 none, get, all (默认get),设置URL是否包含参数,以及是否只包含GET方式的参数。
struts.locale 设置struts2默认的locale,决定使用哪个资源文件。
struts.ui.templateDir 该属性指定视图主题所需要模板文件的位置,该属性的默认值是template,即默认加载template路径下的模板文件
struts.ui.theme 该属性指定视图标签默认的视图主题,该属性的默认值是xhtml。
struts.ui.templateSuffix 该属性指定模板文件的后缀,该属性的默认属性值是ftl。该属性还允许使用ftl、vm或jsp,分别对应FreeMarker、Velocity和JSP模板
struts.multipart.saveDir 设置上传临时文件的默认目录
struts.multipart.maxSize 设置上传的临时文件的最大限制
struts.objectFactory.spring.autoWire 可选值(name, type, auto, constructor,name)(默认name),设置spring的自动装配方式,只有引入spring插件后才有效。
struts.objectFactory.spring.autoWire.alwaysRespect (默认false)设置是否总是以自动装配策略创建对象。
struts.objectFactory.spring.useClassCache (默认false)对象工厂是否使用类缓存,开发模式无效。
struts.xslt.nocache (默认为false)设置XsltResult是否不是用缓存。
struts.custom.properties 设置用户的自定义属性文件名列表(用,隔开)
struts.custom.i18n.resources 设置用户自定义的资源文件路径列表(用,隔开)
struts.serve.static (默认false) 设置是否支持静态资源请求(要求url在struts或static下)
struts.serve.static.browserCache (默认false) 是否在静态资源响应中设置缓存。只有在支持静态资源时有效。
struts.el.throwExceptionOnFailure (默认false)是否在解析el表达式或无法找到属性时抛出RuntimeException
struts.ognl.logMissingProperties (默认false)是否日志无发找到的属性
struts.ognl.enableExpressionCache 是否缓存ognl解析的表达式。
struts.enable.DynamicMethodInvocation (默认false)是否支持动态的方法调用,在URL上通过!method指定方法。
struts.enable.SlashesInActionNames 在URL中的Action段中是否支持斜线
struts.mapper.alwaysSelectFullNamespace (默认false) 是否总是用最后一个斜线前的URL段作为namespace
核心对象Constants

struts.actionProxyFactory 设置ActionProxy的实体工厂,该工厂同时也生成默认的ActionInvoctation
struts.xworkConverter 设置XWorkConverter对象,该对象用于获取各种类型的转换器。
struts.unknownHandlerManager 设置UnknownHandlerManager的实现类,用于处理无法找到方法等异常。
struts.multipart.handler 设置mutipartRequest的handler (默认是jakarta)对应类,org.apache.struts2.dispatcher.multipart.JakartaMultiPartRequest
struts.mapper.class 可选值(struts,composite,restful,restful2)设置URL解析且映射到ACTION的实现,(默认struts).
struts.mapper.prefixMapping 通过URL前缀映射到对应的Mapper,格式为urlPrefix1:mapperName2,urlPrefix2:mapperName2。必须添加mapperClass为org.apache.struts2.dispatcher.mapper.PrefixBasedActionMapper,并指定struts.mapper.class为该mapper。
struts.mapper.composite 设置是否支持复合(多个)actionMapper,mapperName用逗号隔开。必须配置struts.mapper.class 为composite 才会生效
struts.mapper.idParameterName 用于Restful2ActionMapper作为URL中id所对应的parameterName
struts.ognl.allowStaticMethodAccess (默认false)设置ognl表达式是否支持静态方法。
struts.configuration 设置struts2的Settings类。(2.1.2后不再使用)
struts.urlRenderer 设置struts2的URL render(用于生成的URL),(默认struts),类名org.apache.struts2.components.ServletUrlRenderer
struts.objectFactory 设置struts2的对象工厂,默认(struts),类名org.apache.struts2.impl.StrutsObjectFactory,当引入struts2-spring插件之后,则被修改为org.apache.struts2.spring.StrutsSpringObjectFactory
struts.xworkTextProvider 设置struts2的资源文件内容提供类的实现。默认为com.opensymphony.xwork2.TextProviderSupport
struts.actionValidatorManager 设置ActionValidatorManager 的实现类。
struts.valueStackFactory 设置struts2的ValueStack工厂的实现。
struts.reflectionProvider 设置ReflectionProvider的实现类
struts.reflectionContextFactory 设置ReflectionContextFactory的实现类
struts.patternMatcher 设置PatternMatcher的实现类
struts.staticContentLoader 设置StaticContentLoader的实现类

延伸 · 阅读

精彩推荐