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常量配置,內容主要來自于互聯網的整理。
<?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總結
見注釋
<?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的實現類
新聞熱點
疑難解答