struts-config.xml配置文件詳解

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>

相關文章
相關標籤/搜索