Struts2,struts2下載
配置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的實現類