#是否是开发模式 struts.devMode=true #属性设置Struts 2是否支持动态方法调用,该属性的默认值是true。如果需要关闭动态方法调用, #则可设置该属性为false struts.serve.static.browserCache=false #该属性设置是否每次HTTP请求到达时,系统都重新加载资源文件。 #该属性默认值是false。在开发阶段将该属性设置为true会更有利于开发, struts.i18n.reload=true #设置国际化资源文件的名称 struts.custom.i18n.resources=abc #设置编码格式为UTF-8, 相当于调用HttpServletRequest的setCharacterEncoding方法 struts.i18n.encoding=UTF-8 #这样写的目的是使得访问地址的后缀可以是以下,例如adduser.action、adduser.do、、、、 struts.action.extension=do,php,asp,aspx,action ### Parser to handle HTTP POST requests, encoded using the MIME-type multipart/form-data # struts.multipart.parser=cos # struts.multipart.parser=pell struts.multipart.parser=jakarta # uses javax.servlet.context.tempdir by default struts.multipart.saveDir= struts.multipart.maxSize=2097152 #该属性指定Struts 2框架默认加载的配置文件,如果需要指定默认加载多个配置文件,则多个配置文件的文件名之间以英文逗号(,)隔开。 #该属性的默认值为struts-default.xml,struts-plugin.xml,struts.xml,看到该属性值,读者应该明白为什么Struts 2框架默认加载struts.xml文件了。 struts.configuration.files=struts-default.xml,struts-plugin.xml,struts.xml,user.xml
##########以上为常用到的配置信息##############
#########配置文件的优先级问题###############
手动修改配置文件,可以在 web.xml,struts.properties,struts.xml中分别进行配置,优先级是 web.xml > struts.properties >struts.xml.
以编码方式为例: 在web.xml中: <filter> <filter-name>my_struts_2</filter-name> <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class> <init-param> <param-name>struts.i18n.encoding</param-name> <param-value>UTF-8</param-value> </init-param> </filter> 在struts.properties中: struts.i18n.encoding=GBK 在struts.xml中: <constantname="struts.i18n.encoding"value="ISO-8859-1"></constant> 最后的编码格式将是UTF-8。
-----------------下面是详细解读----------------- <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTDStruts Configuration 2.1//EN""http://struts.apache.org/dtds/struts-2.1.dtd"> <struts> 一、 静态属性constant 1.1. struts.serve.static.browserCache <!-- 该属性设置浏览器是否缓存静态内容。当应用处于开发阶段时,我们希望每次请求都获得服务器的最新响应, 则可设置该属性为false --> <constant name="struts.serve.static.browserCache"value="false"/> 1.2. struts.enable.DynamicMethodInvocation <!-- 该属性设置Struts 2是否支持动态方法调用,该属性的默认值是true。如果需要关闭动态方法调用, 则可设置该属性为false <constant name="struts.enable.DynamicMethodInvocation"value="true"/>--> 1.3. struts.enable.SlashesInActionNames <!-- struts.enable.SlashesInActionNames :该属性设置Struts 2是否允许在Action名中使用斜线,该属性的默认值是false。如果开发者希望允许在Action名中使用斜线,则可设置该属性为true。 struts.tag.altSyntax: 该属性指定是否允许在Struts 2标签中使用表达式语法,因为通常都需要在标签中使用表达式语法,故此属性应该设置为true,该属性的默认值是true。 1.4. struts.devMode struts.devMode:该属性设置Struts 2应用是否使用开发模式。如果设置该属性为true,则可以在应用出错时显示更多、更友好的出错提示。 该属性只接受true和flase两个值,该属性的默认值是false。通常,应用在开发阶段,将该属性设置为true,当进入产品发布阶段后,则该属性设置为false。 1.5. struts.i18n.reload struts.i18n.reload:该属性设置是否每次HTTP请求到达时,系统都重新加载资源文件。该属性默认值是false。在开发阶段将该属性设置为true会更有利于开发, 但在产品发布阶段应将该属性设置为false。 提示 开发阶段将该属性设置了true,将可以在每次请求时都重新加载国际化资源文件,从而可以让开发者看到实时开发效果;产品发布阶段应该将该属性设置为false, 是为了提供响应性能,每次请求都需要重新加载资源文件会大大降低应用的性能。 1.6. struts.ui.theme struts.ui.theme:该属性指定视图标签默认的视图主题,该属性的默认值是xhtml。 1.7. struts.ui.templateDir struts.ui.templateDir:该属性指定视图主题所需要模板文件的位置,该属性的默认值是template,即默认加载template路径下的模板文件。 1.8. struts.ui.templateSuffix struts.ui.templateSuffix:该属性指定模板文件的后缀,该属性的默认属性值是ftl。该属性还允许使用ftl、vm或jsp,分别对应FreeMarker、Velocity和JSP模板。 1.9. struts.configuration.xml.reload struts.configuration.xml.reload:该属性设置当struts.xml文件改变后,系统是否自动重新加载该文件。该属性的默认值是false。 1.10. struts.velocity.configfile struts.velocity.configfile:该属性指定Velocity框架所需的velocity.properties文件的位置。该属性的默认值为velocity.properties。 1.11. struts.velocity.contexts struts.velocity.contexts:该属性指定Velocity框架的Context位置,如果该框架有多个Context,则多个Context之间以英文逗号(,)隔开。 1.12. struts.velocity.toolboxlocation struts.velocity.toolboxlocation:该属性指定Velocity框架的toolbox的位置。 1.13. struts.url.http.port struts.url.http.port该属性指定Web应用所在的监听端口。该属性通常没有太大的用户,只是当Struts 2需要生成URL时(例如Url标签),该属性才提供Web应用的默认端口。 struts.url.https.port:该属性类似于struts.url.http.port属性的作用,区别是该属性指定的是Web应用的加密服务端口。 1.14. struts.url.includeParams struts.url.includeParams:该属性指定Struts 2生成URL时是否包含请求参数。该属性接受none、get和all三个属性值,分别对应于不包含、仅包含GET类型请求参数和包含全部请求参数。 1.15. struts.custom.i18n.resources struts.custom.i18n.resources该属性指定Struts 2应用所需要的国际化资源文件,如果有多份国际化资源文件,则多个资源文件的文件名以英文逗号(,)隔开。 1.16. struts.dispatcher.parametersWorkaround struts.dispatcher.parametersWorkaround :对于某些Java EE服务器,不支持HttpServletRequest调用getParameterMap()方法,此时可以设置该属性值为true来解决该问题。该属性的默认值是false。对于WebLogic、Orion和OC4J服务器,通常应该设置该属性为true。 1.17. struts.freemarker.manager.classname struts.freemarker.manager.classname: 该属性指定Struts 2使用的FreeMarker管理器。该属性的默认值是org.apache.struts2.views.freemarker.FreemarkerManager,这是Struts 2内建的FreeMarker管理器。 1.18. struts.freemarker.wrapper.altMa struts.freemarker.wrapper.altMap该属性只支持true和false两个属性值,默认值是true。通常无需修改该属性值。 1.19. struts.xslt.nocache struts.xslt.nocache 该属性指定XSLT Result是否使用样式表缓存。当应用处于开发阶段时,该属性通常被设置为true;当应用处于产品使用阶段时,该属性通常被设置为false。 1.20. struts.configuration.files struts.configuration.files: 该属性指定Struts 2框架默认加载的配置文件,如果需要指定默认加载多个配置文件,则多个配置文件的文件名之间以英文逗号(,)隔开。 该属性的默认值为struts-default.xml,struts-plugin.xml,struts.xml,看到该属性值,读者应该明白为什么Struts 2框架默认加载struts.xml文件了。 1.21. struts.i18n.encoding 设置编码格式为UTF-8,相当于调用HttpServletRequest的setCharacterEncoding方法 <constant name="struts.i18n.encoding" value=" UTF-8"/>