struts2中的常量

 1)常量的加载顺序

    1,org/apache/struts2/default.properties

    2,struts-default.xml



    5, struts.properties  在src下



    先加载struts-default.xml再加载struts-plugin.xml,再加载struts.xml文件

  分析:在StrutsPrepareAndExecuteFilter过滤器的init方法中

Dispatcher dispatcher = init.initDispatcher(config);//此方法是初始化配置参数
public Dispatcher initDispatcher( HostConfig filterConfig ) {
Dispatcher dispatcher = createDispatcher(filterConfig);
dispatcher.init();//关键是init()方法
return dispatcher;
}

在dispatcher.init()方法中

private static final String DEFAULT_CONFIGURATION_PATHS = "struts-default.xml,struts-plugin.xml,struts.xml";
init_DefaultProperties(); // [1]
//[1]是初始化org/apache/struts2/default.properties配置文件
init_TraditionalXmlConfigurations(); // [2]
//[2]看具体的方法
private void init_TraditionalXmlConfigurations() {
String configPaths = initParams.get("config");
if (configPaths == null) {
configPaths = DEFAULT_CONFIGURATION_PATHS;//可以看出在这里将其他的配置文件加载了进来,
}
String[] files = configPaths.split("\\s*[,]\\s*");
for (String file : files) {
if (file.endsWith(".xml")) {
if ("xwork.xml".equals(file)) {
configurationManager.addContainerProvider(createXmlConfigurationProvider(file, false));
} else {
configurationManager.addContainerProvider(createStrutsXmlConfigurationProvider(file, false, servletContext));
}
} else {
throw new IllegalArgumentException("Invalid configuration file name");
}
}
}

configPaths 接收了一个常量里面依次包含了struts-default.xml,struts-plugin.xml,struts.xml文件,struts2解析到配置文件的常量以后,如果前面有就会覆盖掉原始值

所以说 在多个文件中国配置了同一个常量,则以最后一次出现为准,后面的会覆盖前面的


2)struts2中的常用常量

1:struts.configuration
含义:用来指定一个用来读取默认配置的类,这个类需要继承org.apache.struts2.config.Configuration
默认值:org.apache.struts2.config.DefaultConfiguration
2:struts.locale
含义:用来设置默认的locale
默认值:en_US
3:struts.i18n.encoding
含义:用来设置默认的编码方式
默认值:UTF-8
4:struts.objectFactory
含义:用来设置默认的对象工厂,使用struts-spring-plugin插件时可以配置,也可以不配置,因为在插件包中已经配置了
默认值:spring
5:struts.objectFactory.spring.autoWire
含义:如果使用spring作为默认的对象工厂,这里就配置spring的自动装配策略
默认值:name
6:struts.objectFactory.spring.useClassCache
含义:配置当struts和spring集成时,是否缓存类实例
默认值:true
7:struts.objectFactory.spring.autoWire.alwaysRespect
含义:总是使用spring的自动装配策略
默认值:false
8:struts.objectTypeDeterminer
含义:对象类型确定器。
默认值:tiger
9:struts.multipart.parser
含义:指定进行multipart上传的解释器,也就是如何处理文件上传。
默认值:jakarta
10:struts.multipart.saveDir
含义:指定进行multipart上传的临时文件存放路径。
默认值:没有指定
11:struts.multipart.maxSize
含义:指定进行multipart上传的临时文件的最大限制。
默认值:2097152
12:struts.custom.properties
含义:用户自定义属性文件的路径,不能是struts.properties。
默认值:application,org/apache/struts2/extension/custom
13:struts.mapper.class
含义:设置如何把url和类进行对应。
默认值:org.apache.struts2.dispatcher.mapper.DefaultActionMapper
14:struts.action.extension
含义:指定需要Struts2处理的后缀列表,多个名字间用逗号分隔。
默认值:action,,
15:struts.serve.static
含义:表示struts是否应该提供其jar文件内部的静态内容。
默认值:true
16:struts.serve.static.browserCache
含义:是否缓存静态资源。
默认值:true
17:struts.enable.DynamicMethodInvocation
含义:是否启用动态方法调用的功能。
默认值:true
18:struts.enable.SlashesInActionNames
含义:是否可以在action的名称里面使用“/”。
默认值:false
19:struts.tag.altSyntax
含义:是否可以使用“%{…}”格式的表达式。
默认值:true
20:struts.devMode
含义:是否启用开发模式。
默认值:false
21:struts.i18n.reload
含义:是否启用i18n自动重载。
默认值:false
22:struts.ui.theme
含义:默认的主题
默认值:xhtml
23:struts.ui.templateDir
含义:模板的默认存放路径
默认值:template
24:struts.ui.templateSuffix
含义:模板的默认类型,可以是ftl(FreeMarker)、vm(Velocity)、jsp(JSP)
默认值:ftl
25:struts.configuration.xml.reload
含义:指定是否在struts.xml文件被修改后重新加载它
默认值:false
26:struts.velocity.configfile
含义:指定默认的Velocity配置文件
默认值:velocity.properties
27:struts.velocity.contexts
含义:指定默认的Velocity Context的配置文件列表,用逗号分隔
默认值:没有指定
28:struts.velocity.toolboxlocation
含义:指定Velocity工具箱的存放位置
默认值:没有指定
29:struts.url.http.port
含义:指定默认的http端口号
默认值:80
30:struts.url.https.port
含义:指定默认的https端口号
默认值:443
31:struts.url.includeParams
含义:指定Struts 2生成URL时是否包含请求参数
默认值:none
32:struts.custom.i18n.resources
含义:指定自定义的i18n资源包的名称
默认值:testmessages,testmessages2
33:struts.dispatcher.parametersWorkaround
含义:指定为不支持HttpServlet Request调用getParameterMap()方法的应用程序提供其他方式的支持
默认值:false
34:struts.freemarker.manager.classname
含义:指定使用哪一种FreeMarker Manager类。
默认值:org.apache.struts2.views.freemarker.FreemarkerManager
35:struts.freemarker.templatesCache
含义:指定是否对FreeMarker的模板进行缓存。
默认值:false
36:struts.freemarker.beanwrapperCache
含义:指定是否启用BeanWrapper的模型缓存。
默认值:false
37:struts.freemarker.mru.max.strong.size
含义:指定Freemaker中MruCacheStorage的maxStrongSize。
默认值:100
38:struts.xslt.nocache
含义:是否使用样式表缓存。
默认值:false
39:struts.mapper.alwaysSelectFullNamespace
含义:是否允许把最后一个反斜线之前的所有东西作为一个完整的命名空间。
默认值:false
40:struts.ognl.allowStaticMethodAccess
含义:是否允许在OGNL表达式中访问静态方法。
默认值:false
41:struts.el.throwExceptionOnFailure
含义:设置在处理el表达式的时候,是否可以抛出运行时错误。
默认值:false
42:struts.ognl.logMissingProperties
含义:设置是否记录缺失属性日志。
默认值:false
43:struts.ognl.enableExpressionCache
含义:设置设置是否缓存解析过的OGNL表达式。
默认值:true