Struts2為Action中的屬性提供了依賴注入功能,在struts2的配置文件中,我們可以很方便地為Action中的屬性注入值。注意:屬性必須提供setter方法。 1 public class HelloWorldAction{ <package name="jim" namespace="/test" extends="struts-default"> 上面通過<param>節(jié)點為action的savePath屬性注入“/images”
前面我們都是默認(rèn)使用.action后綴訪問Action。其實默認(rèn)后綴是可以通過常量”struts.action.extension“進(jìn)行修改的,例如:我們可以配置Struts 2只處理以.do為后綴的請求路徑: <?xml version="1.0" encoding="UTF-8"?> 如果用戶需要指定多個請求后綴,則多個后綴之間以英文逗號(,)隔開。如:
<constant name="struts.action.extension" value="do,go"/>
常量可以在struts.xml或struts.properties中配置,建議在struts.xml中配置,兩種配置方式如下:
在struts.xml文件中配置常量
<struts>
<constant name="struts.action.extension" value="do"/>
</struts>
在struts.properties中配置常量
struts.action.extension=do
因為常量可以在下面多個配置文件中進(jìn)行定義,所以我們需要了解struts2加載常量的搜索順序:
struts-default.xml
struts-plugin.xml
struts.xml
struts.properties
web.xml
如果在多個文件中配置了同一個常量,則后一個文件中配置的常量值會覆蓋前面文件中配置的常量值.
常用的常量介紹<!-- 指定默認(rèn)編碼集,作用于HttpServletRequest的setCharacterEncoding方法 和freemarker 、velocity的輸出 -->
<constant name="struts.i18n.encoding" value="UTF-8"/>
<!-- 該屬性指定需要Struts 2處理的請求后綴,該屬性的默認(rèn)值是action,即所有匹配*.action的請求都由Struts2處理。如果用戶需要指定多個請求后綴,則多個后綴之間以英文逗號(,)隔開。 -->
<constant name="struts.action.extension" value="do"/>
<!-- 設(shè)置瀏覽器是否緩存靜態(tài)內(nèi)容,默認(rèn)值為true(生產(chǎn)環(huán)境下使用),開發(fā)階段最好關(guān)閉 -->
<constant name="struts.serve.static.browserCache" value="false"/>
<!-- 當(dāng)struts的配置文件修改后,系統(tǒng)是否自動重新加載該文件,默認(rèn)值為false(生產(chǎn)環(huán)境下使用),開發(fā)階段最好打開 -->
<constant name="struts.configuration.xml.reload" value="true"/>
<!-- 開發(fā)模式下使用,這樣可以打印出更詳細(xì)的錯誤信息 -->
<constant name="struts.devMode" value="true" />
<!-- 默認(rèn)的視圖主題 -->
<constant name="struts.ui.theme" value="simple" />
<!– 與spring集成時,指定由spring負(fù)責(zé)action對象的創(chuàng)建 -->
<constant name="struts.objectFactory" value="spring" />
<!–該屬性設(shè)置Struts 2是否支持動態(tài)方法調(diào)用,該屬性的默認(rèn)值是true。如果需要關(guān)閉動態(tài)方法調(diào)用,則可設(shè)置該屬性為false。 -->
<constant name="struts.enable.DynamicMethodInvocation" value="false"/>
<!--上傳文件的大小限制-->
<constant name="struts.multipart.maxSize" value=“10701096"/>
|
|