Struts2常量介紹 10級學員 劉根鵬課堂筆記html
通過前幾講的介紹,我想你們對struts2有了初步的瞭解,下面讓我來說講struts2中常量的用法和使用(常量的默認配置struts2-core-2.x.x.x/org/apache/struts2/default.properties文件裏)。
一.常量配置:java
要用常量,首先要經過配置來實現,常量能夠在下面多個文件中進行定義,struts2載常量的搜索順序以下,後面的設置能夠覆蓋前面的設置: default.properties文件 struts-default.xml struts-plugin.xml struts.xml struts.properties web.xml 注意:
之因此使用struts.propreties文件配置,是由於爲了保持與WebWork的向後兼容
在實際開發中,在web.xml中配置常量相比其餘兩種,須要更多的代碼量,會下降了web.xml的可讀性
一般推薦在struts.xml文件中配置struts2的常量,並且便於集中管理
2、常量詳解:web
(1)struts.i18n.encoding=UTF-8 指定默認編碼
用法: <constant name="struts.i18n.encoding" value="UTF-8" />ajax
(2)struts.action.extension 指定Struts 2處理的請求後綴,默認值是action,即全部匹配*.action的請求都由Struts2處理,若是用戶須要指定多個請求後綴,則多個後綴之間以英文逗號(,)隔開 用法:<constant name="struts.action.extension" value="do" /> 或者 <constant name="struts.action.extension" value="do,action" />spring
(3)struts.configuration.xml.reload 當struts的配置文件修改後,系統是否自動從新加載該文件,默認值爲false(生產環境下使用),開發階段最好打開 用法:<constant name="struts.configuration.xml.reload" value="true" />apache
(4)struts.devMode
開發模式下使用,默認爲false,設置成true,這樣能夠打印出更詳細的錯誤信息,有助於查找到錯誤,在開發的時候建議開啓,項目發佈以後改爲false <constant name="struts.devMode" value="true" />瀏覽器
(5)struts.multipart.parser 該屬性指定處理 MIME-type multipart/form-data,文件上傳方式,有三種方式cos、pell 、jakarta;struts2默認採用第三種方式,若是想用前兩種方式,須要去網上下載相應jar包便可 用法: <constant name="struts.multipart.parser" value="cos" />
<constant name="struts.multipart.parser" value="pell" />
<constant name="struts.multipart.parser" value="jakarta" />緩存
(6)struts.multipart.saveDir 指定上傳文件時的臨時目錄,默認使用 javax.servlet.context.tempdir 用法:<constant name="struts.multipart.saveDir" value="/tmpuploadfiles" />服務器
(7)struts.multipart.maxSize 該屬性指定Struts 2文件上傳中整個請求內容容許的最大字節數 默認爲2M 用法:<constant name="struts.multipart.maxSize" value="2097152" />app
(8)struts.ui.theme 默認的視圖主題,能夠爲simple,xhtml或ajax 用法:<constant name="struts.ui.theme" value="simple" />
(9)struts.serve.static.browserCache 設置瀏覽器是否緩存靜態內容,默認值爲true(生產環境下使用),開發階段最好關閉 用法:<constant name="struts.serve.static.browserCache" value="false" />
(10)struts.enable.SlashesInActionNames 設置是否能夠在action中使用斜線,默認爲false不能夠,設置爲true,可使用 用法:<constant name="struts.enable.SlashesInActionNames" value="true" />
(11)struts.enable.DynamicMethodInvocation 設置是否支持動態方法調用,true爲支持,false不支持. 用法:<constant name="struts.enable.DynamicMethodInvocation" value="true" />
下面是一些不經常使用的常量使用方法,須要瞭解一下:由於重點是struts2的講解,因此與spring集成時用到的常量,在講spring時還將給你們重點講解,這裏就很少說了。
[java] view plaincopy
<!-- 指定請求url與action映射器,默認爲org.apache.struts2.dispatcher.mapper.DefaultActionMapper -->
<constant name="struts.mapper.class" value="org.apache.struts2.dispatcher.mapper.DefaultActionMapper" /> <!-- 是否容許使用表達式語法,默認爲true. --> <constant name="struts.tag.altSyntax" value="true" /> <!-- 模板目錄 --> <cosntant name="struts.ui.templateDir" value="template" /> <!-- 設置模板類型. 能夠爲 ftl, vm, or jsp --> <cosntant name="struts.ui.templateSuffix" value="ftl" /> <!-- 定位velocity.properties 文件. 默認velocity.properties --> <cosntant name="struts.velocity.configfile" value="velocity.properties" /> <!-- 設置velocity的context. --> <cosntant name="struts.velocity.contexts" value="...." /> <!-- 定位toolbox --> <cosntant name="struts.velocity.toolboxlocation" value="...." /> <!-- 指定web應用的端口 --> <cosntant name="struts.url.http.port" value="80" /> <!-- 該屬性指定Struts2應用加載用戶自定義的屬性文件,該自定義屬性文件指定的屬性不會覆蓋 struts.properties文件中指定的屬性。若是須要加載多個自定義屬性文件,多個自定義屬性文 件的文件名以英文逗號(,)隔開。(也就是說不要改寫struts.properties!) --> <constant name="struts.custom.properties" value="application,org/apache/struts2/extension/custom" /> <!-- 指定加密端口 --> <cosntant name="struts.url.https.port" value="443" /> <!-- 設置生成url時,是否包含參數.值能夠爲: none,get or all --> <cosntant name="struts.url.includeParams" value="get" /> <!-- 設置要加載的國際化資源文件,以逗號分隔. --> <cosntant name="struts.custom.i18n.resources" value="application" /> <!-- 對於一些web應用服務器不能處理HttpServletRequest.getParameterMap(), 像 WebLogic,Orion, and OC4J等,須設置成true,默認爲false. --> <cosntant name="struts.dispatcher.parametersWorkaround" value="false" /> <!-- 指定freemarker管理器 --> <cosntant name="struts.freemarker.manager.classname" value="org.apache.struts2.views.freemarker.FreemarkerManager" /> <!-- 設置是否對freemarker的模板設置緩存,效果至關於把template拷貝到 WEB_APP/templates. --> <cosntant name="struts.freemarker.templatesCache" value="false" /> <!-- 一般不須要修改此屬性. --> <cosntant name="struts.freemarker.wrapper.altMap" value="true" /> <!-- 指定xslt result是否使用樣式表緩存.開發階段設爲true,發佈階段設爲false. --> <cosntant name="struts.xslt.nocache" value="false" /> <!-- 設置struts自動加載的文件列表. --> <cosntant name="struts.configuration.files" value="struts-default.xml,struts-plugin.xml,struts.xml" /> <!-- 設定是否一直在最後一個slash以前的任何位置選定namespace. --> <cosntant name="struts.mapper.alwaysSelectFullNamespace" value="false" />
<!-- spring 託管 與spring集成時須要用到 -->
<constant name="struts.objectFactory" value="spring" /> <!-- 指定加載struts2配置文件管理器,默認爲org.apache.struts2.config.DefaultConfiguration ,開發者能夠自定義配置文件管理器,該類要實現Configuration接口,能夠自動加載struts2配置文件。 --> <constant name="struts.configuration" value="org.apache.struts2.config.DefaultConfiguration" /> <!-- 設置默認的locale和字符編碼 國際化使用 --> <constant name="struts.locale" value="zh_CN" /> <constant name="struts.i18n.encoding" value="UTF-8" /> <!-- 指定Struts的工廠類 --> <constant name="struts.objectFactory" value="spring"></constant> <!-- 指定spring框架的裝配模式,裝配方式有: name, type, auto, and constructor (name 是默認裝配模式) --> <constant name="struts.objectFactory.spring.autoWire" value="name" /> <!-- 該屬性指定整合spring時,是否對bean進行緩存,值爲true or false,默認爲true --> <cosntant name="struts.objectFactory.spring.useClassCache" /> <!-- 指定類型檢查,包含tiger和notiger --> <cosntant name="struts.objectTypeDeterminer" value="tiger" />