Struts2提供了很多可配置的属性,通过这些属性的设置,可以改变框架的行为,从而满足不同的Web应用的需求。这些属性可以在Struts.properties文件中进行设置,struts.properties是标准的Java属性文件格式,"#"号作为注释字符,文件由键(Key)-值(value)对组成,struts2的属性为键,属性的值为值。
struts.properties文件必须位于classpath下,通常放在Web应用程序的/WEB-INF/classes目录下。
struts2在default.properties文件(位于struts2-core-2.0.11.jar中的org/apache/struts2目录下)中给出了所有属性的列表,并对其中的一些属性设置了默认值。如果你创建了struts.properties文件,那么在该文件中的属性设置会覆盖default.properties文件中的属性设置。
default.properties文件给出的属性及属性的作用如下:
struts.configuration
指定用于配置Struts2的Configuration借口的实现类,默认使用的是com.opensymphony.xwork2.config.impl.DefaultConfiguration类。你可以实现com.opensymphony.xwork2.config.Configuration接口,然后以自己的方式获取配置参数来传给Struts2。该属性未设置。
struts.locale
指定默认的locale。该属性未设置。
struts.i18n.encoding
指定默认的编码方案,默认值为UTF-8,在解决中文乱码问题时,可尝试将其设为GBK或GB2312。
struts.objectFactory
指定这个属性可以覆盖默认的对象工厂。要提供自定义的实现,需要从com.opensymphony.xwork2.ObjectFactory类继承,并为改属性指定子类名。要主意的是,改属性的值在某些情况下也支持缩写,例如"spring"。该属性未设置。
struts.objectFactory.spring.autoWire
指定当使用SpringObjectFactory时自动装配逻辑。有效的值包括:name、type、auto和constructor,默认值是name。
struts.objectFactory.spring.useClassCache
指定在Strut2框架集成Spring时,Spring是否应该缓存类的实例。有效的值包括trut和false,默认值为true。通常情况下不建议修改该属性的值。
struts.objectTypeDeterminer
指定对象类型检测机制。默认使用com.opensymphony.xwork2.util.DefaultObjectTypeDeterminer类,他使用泛型来处理类型检测。作为替代,你可以同一个com.opensymphony.xwork2.util.ObjectTypeDeterminer借口的实现类,并为改属性指定实现类的类名。要主意的是,改属性的值也可以缩写,有效的值包括:tiger和notiger。如果要关闭tiger支持,使用notiger属性值。该属性未设置。
struts.multipart.parser
指定处理HTTP POST请求的解析器,该请求使用MIME类型multipart/form-data进行编码。该属性主要用于支持文件上传,可选的值为pell、cos和jakarta,默认值为jakarta,即使用ASF的commons-fileupload组件处理文件上传。
struts.multipart.saveDir
指定文件上传的临时目录。默认使用javax.servlet.context.tempdir。
struts.multipart.maxSize
指定允许上传的文件最大字节数。默认值是2097152。
struts.custom.properties
指定要加载的用户定制的属性文件列表(以逗号隔开),这些属性文件中的属性设置不会覆盖struts.properties文件中的属性设置。该属性未设置。
struts.mapper.class
指定org.apache.struts2.dispatcher.ActionMapper接口的实现类,用来处理HTTP请求和action之间的映射。该属性未设置。
struts.action.extension
指定struts2处理的请求的后缀,默认值是action,即所有匹配*.action的请求都由struts2处理。可以同事指定多个后缀名,各个后缀名之间以逗号分隔,例如:struts.action.extension=do,asp,aspx,php。
struts.serve.static
改属性由FilterDispatcher使用。可选的值为true和false,默认值是true。如果为true,那么Struts2将为他的jar包内的静态内容提供如果;如果为false,那么静态内容必须在<context_path>/struts下才可以访问。
struts.serve.static.browserCache
指定浏览器是否缓存静态内容。可选的值为true和false,默认值为true。注意,改属性只有在struts.serve.static=true的时候才有效。在开发阶段,如果我们希望静态内容的改变能够在每一次请求中反映出来,则可以将这个属性设置为false。
struts.enable.DynamicMethodInvocation
设置struts2是否支持动态方法调用。可选的值为true和false,默认为ture。
struts.enable.SlashesInActionNames
指定在为action取名时,名字中是否允许出现斜杠。可选的值为true和false,默认为false。
struts.tag.altSyntax=true
指定在struts2的标签中是否使用"%{}"的语法来计算标签的字符串属性中的表达式。可选的值为true和false,默认值为true。
struts.devMode
指定是否使用开发模式。可选的值为true和false,默认值为false。当设置为true时,struts2将对开发者更为友好,这包括:
1)struts.i18n.reload = true
2)struts.configuraion.xml.reload = true
3)将各种调试或者可忽略的问题报告为错误
struts.i18n.reload=false
指定是否在每次请求时自动重新加载资源包。
struts.ui.theme
设置struts2的UI标签默认使用的主题。改属性默认值为xhtml。
struts.ui.templateDir
指定UI标签的模版文件存放的目录。改属性的默认值是template。
struts.ui.templateSuffix = ftl
设置默认的模版类型,可以是ftl、vm或者jsp。改属性默认值为ftl。
struts.configuration.xml.reload = false
指定当配置文件(struts.xml)改变时是否重新加载他。默认值是false。
struts.velocity.configfile=velocity.properties
指定velocity配置文件的位置。改属性的默认值为velocity.properties。
struts.velocity.contexts
指定velocityContext的类名,如果有多个类,以逗号分隔。这些类将链接到StrutsVelocityContext。
struts.velocity.toolboxlocation
指定velocitytoolbox的位置。
struts.url.http.port
指定用于url标签的HTTP端口。url标签使用改端口来生成URL。改属性的默认值是80.
struts.url.https.port
指定用于url标签的HTTPS端口。改属性默认值是443.
struts.url.includeParams
指定url标签生成URL时是否包含请求参数,可选的值为:none、get和all,分别表示不包含、只包含get请求参数和包含所有请求参数。默认值get。
struts.custom.i18n.resources=testmessages,testmessages2
指定要加载的国际化资源包的基名,如果多个包,以逗号分隔。改属性未设置。
struts.dispatcher.parametersWorkaround
某些应用服务器不支持HttpServletRequest的getParameterMap()方法的调用,例如WebLogic、Orion和OC4J,这时可以将该属性设置为true。默认值false。
struts.freemarker.manager.classname
配置要使用的freemarker管理器类。改属性允许用户插入定制的freemarker管理器,管理器必须扩展org.apache.struts2.views.freemarker.FreemakerManager类。该属性未设置。
struts.freemarker.templatesCache
指定是否缓存FreeMarker模版。默认值false。
struts.freemarker.wrapper.altMap
StrutsBeanWrapper对FreeMarker的BeansWrapper在Map类型的处理上做了一些改进,如果你要使用正常的BeansWrapper逻辑,将改属性设置为false,默认值为true。
struts.xslt.nocache
配置XSLTResult是否使用样式表缓存。
struts.configuration.files
指定struts2默认自动加载的配置文件列表,以逗号隔开。默认值为struts-default,xmlstruts-plugin,xmlstruts.xml。
struts.mapper.alwaysSelectFullNamespace
设置映射器是否总是选择完整的命名空间,默认值是false。