Struts-config.xml配置文件講解html
1.<struts-config>元素:struts配置文件的根元素。(和它對應的配置類爲org.apache.struts.config.MouleConfig類)java
8個子元素:(前後順序不能變)mysql
<data-sources>,web
<form-beans>,sql
<global-exceptions>,數據庫
<global-forwards>,apache
<action-mappings>,瀏覽器
<controller / >,
<message-resources / >,
<plug-in />。緩存
2.<data-sources>元素:用來配置應用所須要的數據源。安全
包含0,1或者多個<data-source>元素,該元素用於配置特定的數據源。<data-source>元素包含多個<set-property>元素,<set-property>元素用於設置數據源的各類屬性。
Example:
<data-sources>
<data-source type=」org.apache.commons.dbcp.BasicDataSource」>
<set-property property=」autoCommit」 value=」true」/>
<set-property property=」description」 value=」MYSQL Data Source」/>
<set-property property=」driverClass」 value=」com.mysql.jdbc.Driver」/>
<set-property property=」maxCount」 value=」10」/>
<set-property property=」minCount」 value=」2」/>
<set-property property=」user」 value=」root」/>
<set-property property=」password」 value=」」/>
<set-property property=」url」 value=」jdbc:mysql://localhost:3306/數據庫名稱」/>
</data-source>
</data-sources>
配置了數據源後,就可在Action類中訪問數據源了
Javax.sql.DataSource dataSource = getDataSource(request);
Javax.sql.Connection myConnection = dataSource.getConnection();
配置多個數據源:
<data-source key=」A」 type=」org.apache.commons.dbcp.BasicDataSource」>
…property as before…
</data-source>
<data-source key=」B」 type=」org.apache.commons.dbcp.BasicDataSource」>
…property as before…
</data-source>
在Action中去得數據源:
dataSourceA = getDataSource(request,」A」);
dataSourceB = getDataSource(request,」B」);
3.<form-beans>元素:用來配置多個ActionForm Bean。
包含<form-bean>元素,該元素的屬性有:
1.className:指定和<form-bean>元素對應的配置類,默認值爲org.apache.struts.config.FormBeanConfig。若是在這裏設置自定義類,則該類必須擴展FormBeanConfig類。
2.name:指定該ActionForm的惟一標識符,整個struts框架利用該標識符來引用這個bean。(必需的)
3.type:指定ActionForm類的完整實現類名(包括路徑)。(必需的)
Example1:
<form-bean name="UserLoginForm"
type="com.free.web.struts.form.UserLoginForm">
</form-bean>
Example2(動態ActionForm):
<!-- sample form bean descriptor for a DynaActionForm
<form-bean
name="logonForm"
type="org.apache.struts.action.DynaActionForm">
<form-property
name="username"
type="java.lang.String"/>
<form-property
name="password"
type="java.lang.String"/>
</form-bean>
4.<global-exceptions>元素:用於配置異常處理類。
包含多個<exception>元素:用來設置java異常和異常處理類org.apache.struts.action.ExceptionHandler之間的映射。
屬性:className:指定和<exception>元素對應的配置類。默認值爲org.apache.struts.config.ExceptionConfig。
Handler:指定異常處理類。默認值爲org.apache.struts.action.ExceptionHandler。
Key:指定在Resource Bundle中描述該異常的消息key。
Path:指定當一場發生時的轉發路徑。
Scope:指定ActionMessages實例的存放範圍,可選值包括request和session。默認值爲request。
Type:指定所需處理的異常類的名稱。(必需的)
Bundle:指定Resources Bundle。
Example:
<global-exceptions>
<exception
key="expired.password"
type="app.ExpiredPasswordException"
path="/changePassword.jsp"/>
</global-exceptions>
5.<global-forwards>元素:用來聲明全局的轉發關係。
包含多個<forward>元素,<forward>元素用於把一個邏輯名映射到特定的URL。
屬性:className:指定和<forward>元素對應的配置類。默認值爲org.apache.struts.action.ActionForward。
contextRelative:若是此項爲true,表示當path屬性以」/」開頭時,給出的是相對於當前上下文的URL。默認值爲false。
Name:轉發路徑的邏輯名。(必需的)
Path:指定轉發或重定向的URL。(必需的)並且必須以」/」開頭。contextRelative爲true時,表示URL路徑相對於當前上下文(context-ralative); contextRelative爲false時,表示URL路徑相對於當前應用(application-ralative);
Redirect:此項爲true,執行重定向操做;爲false,執行請求轉發操做。
Example:
<global-forwards>
<!-- Default forward to "Welcome" action -->
<!-- Demonstrates using index.jsp to forward -->
<forward
name="welcome"
path="/Welcome.do"/>
</global-forwards>
若是.jsp文件把請求轉發給Action,能夠使用一下代碼:
<html:link forward=」forward1」>
若是Action把請求轉發給.jsp文件,能夠使用一下代碼:
Return (mapping.findForward(「forward2」));
6.<action-mappings>元素:包含<action>元素,描述了從特定的請求路徑到相應的Action類的映射。
在<action>元素中能夠包含多個<exception>和<forward>元素,它們分別配置局部的異常
處理及請求轉發僅被當前的Action所訪問。
屬性:
(1) attribute: 設置和Action關聯的ActionForm Bean在request或session範圍內的屬性key。例如,假定Form Bean存在於request範圍內,而且此項設置爲」myBean」,那麼request.getAttribute(「myBean」)就能夠返回該Bean的實例。
(2) className:和<Action>元素對應的配置元素。默認值爲org.apache.struts.action.ActionMapping。
(3) forward:指定轉發的URL路徑。
(4) includes:指定包含的URL路徑。
(5) input:指定包含輸入表單的URL路徑。當表單驗證失敗時,將把請求轉發到該URL。
(6) name:指定和該Action關聯的ActionForm Bean的名字。該名字必須在<form-bean>元素中必定過。
(7) path:指定訪問Action的路徑,它以」/」開頭,沒有擴展名。
(8) parameter:指定Action的配置參數。在Action類的execute()方法中,能夠調用ActionMapping對象的getParamter()方法來讀取該配置參數。
(9) roles:指定容許調用該Action的安全角色。多個角色之間以逗號隔開。在處理請求時,RequestProcessor會根據該配置項來決定用戶是否有調用Action的權限。
(10) scope:指定ActionForm的存在範圍。可選值爲request和session。默認爲session
(11) type:指定實現該Action類的真實類的路徑和名稱。(完整類名)
(12) unknown:若是此項爲true,表示能夠處理用戶發出的全部無效的ActionURL。默認值爲false。
(13) validate:指定是否要先調用ActionForm Bean的validate()方法。默認爲true
<Action>元素的forward,includes,type屬性相互排斥(即只能設置其中一項)。
Example:
<Action path=」/search」
type=」addressbook.actions.SearchAction」
name=」searchForm」
scope=」request」
validate=」true」
input=」/search.jsp」>
<forward name=」success」 path=」/display.jsp」/>
</action>
注意:局部<forward>元素和<exception>元素的優先級大於全局的。
7.<controller>元素:用於配置ActionServlet。
屬性:
(1) bufferSize:指定上載文件的輸入緩衝的大小。默認值:4096
(2) calssName:指定和<controller>元素對應的配置類。默認值爲org.apache.struts.config.ControllerConfig。
(3) contentType:指定響應結果的內容類型和字符編碼。默認值爲text/html。若是在Action或jsp網頁中也設置了內容類型和字符編碼,將會覆蓋該設置。
(4) locale:指定是否把Locale對象保存到當前用戶的session中。默認值false
(5) processorClass:指定負責處理請求的Java類的完整類名。默認值爲org.apache.struts.action.RequestProcessor。或者擴展了該類的自定義類。
(6) tempDir:指定處理文件上載的臨時文件目錄。若是沒有設置此項,將採用Servlet容器爲Web應用分配的臨時工做目錄。
(7) nochache:若是爲true,在響應結果中將加入特定的頭參數:pragma,cache-control和Expires,防止頁面被存儲在客戶瀏覽器的緩存中。默認值爲false。
Example:
<controller
contentType=」text/html;charset=UTF-8」
locale=」true」
processorClass=」CustomRequestProcessor」/>
8.<message-resources>元素:用來配置resource bundle,resource bundle用於存放本地化消息文本。
屬性:
(1) className:和.<message-resources>元素對應的配置類。默認值爲org.apache.struts.config.MessageResourcesConfig
(2) factory:指定消息資源的工廠類。默認值爲org.apache.struts.util.property.MessageResourcesFacotry
(3) key:綁定在這個資源包中的ServletContext的屬性主鍵,缺省值是Action.MESSAGES_KEY.
(4) Null:指定MessageResources類如何處理未知的消息key。若是此項爲true,將返回空字符串。若是爲false,將返回相似」???global.label.missing???」的字符串,默認值爲true
(5) Parameter:指定recourse bundle的消息資源文件名。該路徑相對於WEB-INF/classes而言。
Example:
<message-resources parameter="MessageResources" />
9.<plug-in>元素:用於配置struts插件。
屬性:className:指定struts插件類。該插件類必須實現org.apache.struts.action.PlugIn接口。
Example:
(1)<plug-in className="org.apache.struts.tiles.TilesPlugin" >
<!-- Path to XML definition file -->
<set-property property="definitions-config"
value="/WEB-INF/tiles-defs.xml" />
<!-- Set Module-awareness to true -->
<set-property property="moduleAware" value="true" />
</plug-in>
(2)<plug-in className="org.apache.struts.validator.ValidatorPlugIn">
<set-property
property="pathnames"
value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml"/>
</plug-in>