struts2的默認(rèn)配置文件是struts.xml,放置的位置是WEB-INF/classes目錄下,模板

1 <?xml version="1.0" encoding="UTF-8"?>
2 <!DOCTYPE struts PUBLIC
3     "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
4     "http://struts.apache.org/dtds/struts-2.0.dtd">
5 <struts>
6 </struts>

如果想要使用這個(gè)配置文件,就要在web.xml文件里面配置,以啟動(dòng)struts2框架。

1 <filter>
2         <filter-name>struts2</filter-name>
3         <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
4     </filter>
5     <filter-mapping>
6         <filter-name>struts2</filter-name>
7         <url-pattern>/*</url-pattern>
8     </filter-mapping>

在很多應(yīng)用中,會(huì)出現(xiàn)很多個(gè)Action,如果都寫在一個(gè)struts.xml文件中,會(huì)讓結(jié)構(gòu)變的難以維護(hù),這種情況下,可以將一個(gè)struts.xml文件按action種類分解成多個(gè)struts配置文件,比如說關(guān)于用戶的:struts-user.xml,關(guān)于管理的:struts-manage.xml,然后在總struts配置文件中調(diào)用

1 <struts>
2     <include file="struts-user.xml"/>
3     <include file="struts-manage.xml"/>
4 </struts>

下面談?wù)勁渲梦募膬?nèi)容,關(guān)于struts-2.0.dtd文件里面的dtd結(jié)構(gòu)就不羅列了,到處都可以找到,這里主要介紹幾個(gè)常用的配置。

首先要說的是,常量可以在struts-default.xml、struts-plugin.xml、struts.xml、struts.properties、web.xml5個(gè)文件中配置,按前面的順序依次加載,配置有重復(fù)的話,后面文件會(huì)覆蓋掉前面的配置,最好都在struts.xml文件里面統(tǒng)一配置。

1、<constant name="struts.ui.theme" value="simple" />

在JSP頁面中,會(huì)用到struts2的s標(biāo)簽,而這個(gè)標(biāo)簽會(huì)有一個(gè)默認(rèn)的格式,有的時(shí)候會(huì)打亂頁面的布局,可以使用上面這個(gè)配置來禁止s標(biāo)簽的默認(rèn)格式生效。

2、<constant name="struts.objectFactory" value="spring" />

當(dāng)struts2和spring集成時(shí),用這個(gè)配置指定由spring負(fù)責(zé)action對象的創(chuàng)建。這樣就可以用到spring的反射技術(shù),更方便的編程。

3、<constant name="struts.action.extension" value="do" />

這個(gè)是關(guān)于action的后綴定義,在上面設(shè)置為.do,如果想要設(shè)置更多的類型,可以使用value="do,action,ss",等把不同的后綴用逗號(hào)隔開。

4、<constant name="struts.i18n.encoding" value="true" />

指定默認(rèn)編碼集,作用于HttpServletRequest的setCharacterEncoding方法和Freemarker、velocity的輸出,默認(rèn)的編碼集是UTF-8。

5、<constant name="struts.serve.static.browserCache" value="false" />

有時(shí)修改了部分內(nèi)容,但是在瀏覽器上沒有體現(xiàn)出來,這是因?yàn)榫彺嬖O(shè)置的問題,上面這個(gè)就是設(shè)置瀏覽器是否緩存靜態(tài)內(nèi)容,默認(rèn)值為true,開發(fā)階段最好關(guān)閉。

6、<constant name="struts.configuration.xml.reload" value="true" />

當(dāng)struts配置文件被修改后,系統(tǒng)是否自動(dòng)加載該文件,默認(rèn)值為false,開發(fā)階段打開就節(jié)省了好多時(shí)間。

7、<constant name="struts.enable,DynamicMethodInvocation" value="false" />

設(shè)置struts2是否支持動(dòng)態(tài)方法調(diào)用,即通過!+方法名的方式,默認(rèn)值為true,這個(gè)配置,各有所愛吧,不過統(tǒng)一方式訪問還是比較好的,我選擇關(guān)閉。

8、<constant name="struts.multipart.maxSize" value="2097152" />

這個(gè)配置是struts2上傳文件的大小限制,單位為字節(jié),上面的2097152字節(jié)就是2M,另外需要注意的是,這個(gè)文件大小,在多文件上傳時(shí)是總大小。

9、<constant name="struts.devMode" value="true" />

在開發(fā)模式下使用,可以打印出更詳細(xì)的錯(cuò)誤信息。

后面就是action的配置

 1 <package name="user" namespace="/user" extends="struts-default">
 2         <action name="op_*" class="userAction" method="{1}">
 3             <result>/success.jsp</result>
 4         </action>
 5         <action name="ck_*" class="checkAction" method="{1}">
 6             <result name="input">/index.jsp</result>
 7             <result name="show">/show.jsp</result>
 8             <result name="check" type="stream">
 9                 <param name="contentType">text/html</param>
10                 <param name="inputName">inputStream</param>
11             </result>
12         </action>
13     </package>

在這個(gè)配置里面還可以注入值,在<action></action>里面加上<param name="arg">value</param>,然后在action類里面提供arg的getset方法,就可以直接在跳轉(zhuǎn)頁面${arg}直接訪問到數(shù)據(jù)value。關(guān)于通配符參考前面的S2SH實(shí)例說明。


      此文部分內(nèi)容來源網(wǎng)絡(luò)。如有侵犯您的版權(quán)問題,請來消息至電子郵件DyEngima&163.com(&換成@),經(jīng)核實(shí)后會(huì)在文章內(nèi)部標(biāo)明來源。
轉(zhuǎn)載請注明來源http://www.aygfsteel.com/DyEnigma/
簽名:有能力、有擔(dān)當(dāng)、有情義的人才能稱之為男人,而不是由性別決定。