sturt2中搜索加载常量的顺序是:
struts-default.xml (在struts2-core.jar文件中)
struts-plugin.xml (在struts2-xxx.jar等Struts2插件JAR文件中)
struts.xml (Web应用默认的Struts2的配置文件)
sturts.propreties (Web应用默认的Struts2的配置文件)
web.xml (Web应用下的配置文件)
注意:若在不同的配置文件中同时配置了相同的Struts2常量,则后一个配置文件的常量值覆盖前一个配置的常量值。
<!-- 设置默认的local属性 --> <constant name="struts.locale" value="zh_CN"/> <!-- 指定Web应用的默认编码集,相当于调用 HttpServletRequest的setCharacterEncoding方法 --> <constant name="struts.i18n.encoding" value="UTF-8" /> <!-- 指定需要Struts2处理的请求后缀,该属性的默认值是action,即所有匹配*.action的请求都由Struts2处理。 如果用户需要指定多个请求后缀,则多个后缀之间以英文逗号隔开。 扩展名可以指定为空,但会有个问题,就是一些其他servlet会映射地址为/services/*,现在这个地址也变成struts2控制范围的地址了, 如果按默认的配置会报找不到action的错误 --> <constant name="struts.action.extension" value="action,do" /> <!-- 设置浏览器是否缓存静态内容,默认值为true(生产环境下使用),开发阶段最好关闭 --> <constant name="struts.serve.static.browserCache" value="false" /> <!-- 当 struts.xml文件的内容改变后,系统是否自动重新加载该文件,默认值为false(生 产环境下使用),开发阶段最好打开 --> <constant name="struts.configuration.xml.reload" value="true" /> <!-- 开发模式下使用,这样可以打印出更详细的错误信息 --> <constant name="struts.devMode" value="true" /> <!-- 设置视图主题,默认为xhtml(simple、xhtml、css_xhtml、ajax)--> <constant name="struts.ui.theme" value="simple" /> <!-- 该属性指定Struts2中的action由Spring容器创建 --> <constant name="struts.objectFactory" value="spring" /> <!-- 指定spring框架的装配模式,装配方式有: name、type、auto 和 constructor (name是默认装配模式) --> <constant name="struts.objectFactory.spring.autoWire" value="type" /> <!-- 指定上传文件时的临时存放目录,默认使用 javax.servlet.context.tempdir --> <constant name="struts.multipart.saveDir" value="/tmp_file" /> <!-- 该属性指定Struts2文件上传中整个请求内容允许的最大字节数 --> <constant name="struts.multipart.maxSize" value="2097152" /> <!-- 设置是否支持动态方法调用,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" /> <!-- 设置是否每次请求,都重新加载资源文件,默认值为false,开发时可设置为true以便调试 --> <constant name="struts.i18n.reload" value="true" /> <!-- 设置要加载的国际化资源文件,以逗号分隔 --> <constant name="struts.custom.i18n.resources" value="application" /> <!-- 设置struts自动加载的文件列表,以逗号分隔 --> <constant name="struts.configuration.files" value="struts-default.xml,struts-plugin.xml,struts.xml" /> <!-- 指定web应用的端口 --> <constant name="struts.url.http.port" value="80" /> <!-- 指定加密端口 --> <constant name="struts.url.https.port" value="443" /> <!-- struts-convention-plugin设置 --> <!-- 指定结果页面路径。 convention插件会自动在此路径中寻找文件,放到WEB-INF的目的是保护文件资源,只有通过程序内部跳转才能访问, 权限拦截器或其他权限处理只要加到action上就可以了 --> <constant name="struts.convention.result.path" value="/WEB-INF/pages/"/> <!-- 设置默认的父包,一般都设置一个default包继承自struts-default。大部分类再继承default。如果需要特殊的包,只能在action中再指定父包 --> <constant name="struts.convention.default.parent.package" value="default"/> <!-- 当struts2跟spring整合后,如果在struts.xml中Action.class指定的是ClassName,而不是BeanID, 那么struts2自己负责Action对象的创建,但是Action对象依赖关系的注入由spring负责。 struts2优先用spring来构造Action对象,用struts.xml中Action.class指定的名称作为BeanID在spring的applicationContext.xml中找, 找到了则用spring的创建的Action实例,没找到也没关系,则struts2自己负责构造这个对象。但是,依赖关系的自动装配还是得由spring完成。 -->