1. 程式人生 > >struts----struts-config.xml檔案配置學習

struts----struts-config.xml檔案配置學習

1.概述。

       在Struts應用啟動時,會把Struts配置檔案中的配置資訊讀入到記憶體中,並把他們放到config包中相關javaBean類的例項 中,org.apache.struts.config包中的每一個類都和Struts配置檔案中特定的配置元素對應。例如:                                               <action>

元素---->ActionMapping

<forward>元素---->ActionForward

2.根元素<struts-config>

      <struts-config>元素是Struts配置檔案的根元素,和它對應的配置類為org.apche.struts.config.ModuleConfig類。

       <struts-config>元素有8個子元素,它的DTD定義如下:

      <!ELEMENT struts-config(data-source

?,form-beans?,global-exception?,global-     forwards?,actionmapping?,controller?,message-resources*,plug-in*)>

       定義Struts配置檔案,必須按照上面DTD規定的順序進行配置,否則將報錯。

 2.1. <data-sources>元素

            <data-sources

>元素用來配置應用所需要的資料來源

            <data-sources>元素包含零個,一個或多個<data-source>子元素。

            <data-source>元素用於配置特定的資料來源,它可以包括多個<set-property>子元素。

            <set-property>元素用於設定資料來源的各種屬性。例如:

<data-sources> 
    <data-source type=”org.apche.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/addressbooksample”/>
    </data-source>
</data-sources> 

            比較流行的資料來源:

名稱

供應商

URL

Poolman

開放原始碼軟體

http://sourceforge.net/projects/poolman

Expresso

Jcorporate

http://www.jcorporate.com

JDBC Pool

開放原始碼軟體

http://www.bitmechanic.com/projects/jdbcpool

DBCP

Jakarta

http://jakarta.apache.org/commons/index.html

            配置完資料來源後,就可以在Action類中訪問資料來源。

            在org.apache.struts.action.Action類中定義了getDataSource(HttpRequest)方法,可以用於獲取資料來源物件的引用。

             例如:

public ActionForward execute(ActionMapping mapping,ActionForm form,HttpServletRequest 
                request,HttpServletResponse response) throws Exception{
    javax.sql.DataSource dataSource;//定義資料來源物件
    java.sql.Connection myConnection;//定義聯接物件
    try{
        dataSource=getDataSource(request);//從配置檔案中讀取資料來源資訊並進行配置
        myConnection=dataSource.getConnection();//建立一個數據源連線例項
    }
    catch(SQLException sqle){
        getServlet().log(“Connection.process”,sqle);
    }
    finally{
    try{
        myConnection.close();
    }
    catch(SQLException e){
        getServlet().log(“Connection.close”,e);
    }
    }// end finally
}//end execute 

          在配置檔案中宣告多個數據源的方法:

          可以通過為每一個數據源分配唯一的key值,通過該值來標識特定的資料來源。例如:

<data-sources>
    <data-source key=”A” 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/addressbooksample”/>
    </data-source>
    <data-source key=”B” type=”org.apache.commons.dbcp.BasicDataSource”>
    </data-source>
    <data-source key=”C” type=”org.apache.commons.dbcp.BasicDataSource”>
    </data-source>
</data-sources> 

    2.2.<form-beans>元素

            <form-beans>元素用來配置多個ActionForm Bean。

            <form-beans>元素包含零個,一個或多個<form-bean>子元素。每個<form-bean>又包含多個屬性:

屬性

描述

className

指定和<form-bean>元素對應的配置類,預設值為org.apache.struts.config.FormBeanConfig,如果在這裡設定自定義的類,該類必須擴充套件FormBeanConfig類。

Name

指定該ActionForm Bean的唯一識別符號,整個Struts框架用識別符號來引用這個Bean,該屬性是必須的。

Type

指定ActionForm類的完整名,該屬性是必需的。(在配置type屬性時,必須給出ActionForm類的完整類名,即包括類的包名。)

<form-beans>
    <form-bean name="wfcm1010Form"
               type="jp.co.bsnnet.sofia.web.forms.keiyaku.wfcm1000.Wfcm1010Form">
    </form-bean>
</form-beans>

 

  2.3.<global-exceptions>元素

           該元素主要配置異常處理,它的exception子元素代表全域性的異常配置。

  2.4 <global-forwards>元素

          該元素主要用來宣告全域性的轉發關係,它具有以下四個屬性:

   2.5 <action-mappings>元素

          描述從特定的請求路徑到相應的Action類的對映。

                 2.5.1  attribute:設定和Action關聯的ActionForm Bean在request和session範圍內的key.

                 2.5.2 classsName:和action元素對應的配置元素,預設為:org.apache.struts.action.ActionMapping.

                 2.5.3 forward:轉發的URL路徑。

                 2.5.4  include:指定包含的URL路徑。

                2.5.5  name:指定和Action關聯的Action FormBean的名字,該名字必須在Form-Bean定義過。

                2.5.6   input:輸入表單的URL路徑,當表單驗證失敗時,將把請求轉發到該URL。

                2.5.7   path:指定訪問Action的路徑,以“/”開頭,無副檔名。

                2.5.8  parameter:指定Actgion的配置引數,在Action類的execute()方法中,可以呼叫ActionMapping物件的getParameter()方 

                                               法來讀取該配置引數。

                2.5.9  scope:指定ActionForm Bean的存在範圍,可選取為request和session,預設為session。

                2.5.10 type:指定Action類的完整類名

                2.5.11  validate:指定是否要呼叫Action FormBean的validate方法,預設值為ture.

       注:forward、include、type屬性只能選中其中一項。