配置struts2常量的三種方法: 1.使用struts.xml中的<constant>元素配置 eg:<constant name="struts.action.extension" value="true"> 2.在struts.properties文件中配置 eg:struts.action. ...
配置struts2常量的三種方法:
1.使用struts.xml中的<constant>元素配置 eg:<constant name="struts.action.extension" value="true">
2.在struts.properties文件中配置 eg:struts.action.extension = true
3.通過在web.xml中設置過濾器StrutsPrepareAndExecuteFilter的參數配置
eg:
<param-name>struts.action.extension</param-name>
<param-value>true</param-value>
優先順序關係:web.xml>struts.properties>struts.xml
<?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的實現類