<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 297,  comments - 1618,  trackbacks - 0
           struts-config.xmlStruts的主要配置文件,在該文件中,可以配置數據源、form-beanactionplug-in(插件)和資源文件的信息。其文件主要結構如下所示:

    <?xml version="1.0" encoding="UTF-8"?>

    <!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://struts.apache.org/dtds/struts-config_1_2.dtd">

    <data-sources>

    <data-source>

    </data-source>

    </data-sources>

    <form-beans>

    <form-bean / >

    </form-beans>

    <global-forwards>

    <forward / >

    </global-forwards>

    <action-mappings>

    <action / >

    </action-mappings>

    <controller / >

    <message-resources / >

    <plug-in />
    </struts-config>

           以上各元素必須是按照這個順序的,若開發人員打亂順序,很可能引起Struts容器啟動時出錯。

           當然struts-config.xml還有<display-name /><description /><icon />子元素,因為它們用得很少,在此不再贅述。只是講述常用的子元素的配置。

    1. data-sources

    本節講述子元素data-sources的配置,該元素可以配置一個或多個data-source元素,即數據源元素,可以通過<set-property>設置driverClassurluserpassword等屬性。配置實例如下:

    <data-source>

                                <!-- 所用的JDBC驅動類,必須-->

                                <set-property property="driverClass" value="com.mysql.jdbc.Driver"/>

                                <!-- 所用的JDBCURL,必須-->

                                <set-property property="url" value="jdbc:mysql://localhost/test"/>

                                <!-- 同時打開的最小連結數,缺省值為1,可選-->

                                <set-property property="minCount" value="1"/>

                                <!-- 同時打開的最大連結數,缺省值為2,可選-->

                                <set-property property="maxCount" value="5"/>

                                <!-- 連結到數據庫的用戶名,必須-->

                                <set-property property="user" value="root"/>

                                <!-- 連結到數據庫的密碼,必須-->

                                <set-property property="password" value="root"/>

                       </data-source>

    開發人員還可以設置Key(綁定在ServletContext上的DataSource實例的索引鍵,若不設定則缺省為Action.DATA_SOURCE_KEY,如果在應用程序中有多于一個的DataSource,則必須設置Key的值)、Description(關于DataSource的描述信息)、ReadOnly(如果設為true,則表示該連結是只讀的,缺省為false)、LoginTimeout(創建連結的最大允許時間,以秒為單位)和AutoCommit(如果為true,則每次execute之后會強制回滾。缺省為true)屬性。

    在實際項目中,例如在Hibernate + Struts構建的系統中,一般使用Hibernatehibernate.cfg.xml文件來配置數據源的信息。而在Hibernate + Struts + Spring構建的系統中,一般使用spring的配置文件(eg. applicationContext.xml)來配置數據源的信息。

    2. form-beans

    子元素form-beans用來配置綁定到Action的各個FormBean的實例。每個FormBean實例用form-bans的子元素form-bean來定義。form-bean又分普通的FormBan和動態FormBean

    1)普通form-bean

    普通FormBean需要定義一個JavaBean類,在form-bean元素中指定該類。普通form-bean元素的定義格式如下:

    <form-bean name="FormBean的名稱" type="FormBean對應JavaBean類的全路徑"/>

    Eg. <form-bean name="UserForm"

                  type="com.amigo.struts.form.user.UserForm" />

    對應的FormBean類一般是繼承ActionForm類,例如下面的例子定義了一個UserForm,它具有userNamepassword兩個屬性。該類的代碼如下:

    package com.amigo.struts.form.user;

    import org.apache.struts.action.ActionForm;

    public class UserForm extends ActionForm {

             private static final long serialVersionUID = 1L;

            

             /** 用戶名.*/

             private String userName;

            

             /** 密碼. */

             private String password;

             public String getPassword() {

                       return password;

             }

             public void setPassword(String password) {

                       this.password = password;

             }

             public String getUserName() {

                       return userName;

             }

             public void setUserName(String userName) {

                       this.userName = userName;

             }

    }

    2)動態form-bean

           動態form-bean不需要定義對應的javabean類,其元素都在struts-config.xml中定義。其type為:org.apache.struts.validator.DynaValidatorForm。下面的動態FormBean定義了userNamepassword屬性,配置如下:

    <form-bean name="UserForm" type="org.apache.struts.validator.DynaValidatorForm">

                 <form-property name="userName" type="java.lang.String"/>

                 <form-property name="password" type="java.lang.String"/>

    </form-bean>

    3 global-forwards

           global-forwards用于配置全局轉發,struts首先會在<action-mappings>元素中找對應的<forward>,若找不到,則到全局轉發配置中找。它包含0個或多個<forward/>元素,格式如下所示:

    <forward name="唯一的名稱" path="指向資源的相對路徑"/>

    Eg.

    <global-forwards>

                       <forward name="failed" path="/error.jsp" />

                       <forward name="success" path="/ success.jsp" />

    </global-forwards>

    <forward/>元素還有一個redirect屬性,其默認值為false,如果redirect設為true的時候,則用HttpServletResponse.sendRedirect()方法,否則用RequestDispatcher.forward()方法,缺省為false

    4 action-mappings

           該元素用于將Action元素定義到ActionServlet類中,它含有0到多個<action/>元素,其格式如下:

    <action-mappings>

    <action path="Action請求的相對路徑"

    type="Action的對應類的全路徑"

    name="Action綁定的FormBean"

    <forward name="指定處理相應請求所對應的地址" path="相對路徑"/>

    </action>

    </action-mappings>

           每個action子元素可包含一個或多個forward子元素。除了pathtypename屬性外,action還具有如下屬性:

    l         scope:指定ActionForm Bean的作用域(sessionrequest),缺省為session(可選)

    l         input:當Bean發生錯誤時返回的路徑(可選)

    l         classname:指定一個調用這個Action類的ActionMapping類的全名。缺省用org.apache.struts.action.ActionMapping(可選)

    l         include:如果沒有forward的時候,它起forward的作用(可選)

    l         validate:若為true,則會調用ActionFormvalidate()方法,否則不調用,缺省為true(可選)。

    forward屬性也是可選的。

    action元素定義舉例如下:

    Eg1.

    <action-mappings>

    <action

     path="/userAction"

     type="com.amigo.struts.action.UserAction"

     name="UserForm"

     scope="request"

     validate = "false"

     parameter="method" >

                 <forward name="error" path="/user/error.jsp" />

             <forward name="success" path="/user/success.jsp"/>

                       <forward name="add" path="/user/addUser.jsp"/>

                       <forward name="update" path="/user/updateUser.jsp"/>

                       <forward name="list" path="/user/userList.jsp"/>

    </action>

    </action-mappings>

    Eg2. input屬性的例子:

    <action-mappings>

    <action path="/calcAction"

    type="com.amigo.struts.action.CalcAction"

    name="CalcForm"

    scope="request"

    validate="true"

    input="/index.jsp">

    <forward name="success" path="/success.jsp"/>
    <forward name="error" path="/error.jsp"/>

    </action>

    </action-mappings>

    Eg3. 僅有JSPaction元素:

    <action path="/menu"

    parameter="/default.jsp"

    type="org.apache.struts.actions.ForwardAction" />

    首先,ActionServlet接到請求后調用ForwardActionexecute()方法,execute()根據配置的parameter屬性值來forward到那個URI

    這樣做的效果是:沒有任何form被實例化,比較現實的情形可能是formrequest更高級別的范圍中定義;或者這個action被用作在應用程序編譯好后充當系統參數,只需要更改這個配置文件而不需要重新編譯系統。

    5. message-resources

           該元素用來定義資源文件,格式如下:

    <message-resources parameter="給定資源文件的全名"

    classname="定義處理消息資源的類名的全名"

    factory="定義MessageResourcesFactory類的全名"

    key="定義綁定在這個資源包中的ServletContext的屬性主鍵"

    null=" 如果為true,則找不到消息key時,則返回null "/>

           message-resources的各屬性中,只有parameter是必選的,其余都為可選,classname屬性默認為:org.apache.struts.config.MessageResourcesConfigfactory屬性默認為:org.apache.struts.util.property.MessageResourcesFacotrykey屬性默認為:Action.MESSAGES_KEYnull屬性默認為:true

           舉例如下,在struts配置文件中添加如下信息:

    Eg1. <message-resources parameter="ApplicationResources" />

    Eg2. <message-resources

     parameter="com.amigo.struts. ApplicationResources "

    null="false"/>

    6. plug-in

           該元素用于定義插件,可定義0到多個插件元素,最常見的plug-inStruts的驗證的插件,配置舉例如下:

    Eg1. Struts的驗證的plug-in

    <plug-in className="org.apache.struts.validator.ValidatorPlugIn">

             <set-property property="pathnames"

                       value="/WEB-INF/validator-rules.xml, /WEB-INF/manager/validation.xml" />

             <set-property property="stopOnFirstError" value="false" />

    </plug-in>

    Eg2. Spring提供的載入插件配置:

    <plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">

    <set-property property="contextConfigLocation"

                  value="/WEB-INF/applicationContext.xml, /WEB-INF/action-servlet.xml"/>

     </plug-in>

    7. 完整配置實例

           本小節舉例說明struts-config.xml文件的配置:

    <?xml version="1.0" encoding="UTF-8"?>

    <!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://struts.apache.org/dtds/struts-config_1_2.dtd">

    <struts-config>

     <data-sources />

     <form-beans>

        <form-bean name="UserForm"

                       type="com.amigo.struts.form.user.UserForm" />

     </form-beans>

     

     <global-exceptions />

     <global-forwards />

     <action-mappings>

    <action

                    path="/userAction"

                    type="com.amigo.struts.action.UserAction"

                    name="UserForm"

                    scope="request"

                    validate = "false"

                    parameter="method" >

                 <forward name="error" path="/user/error.jsp" />

                      <forward name="success" path="/user/success.jsp"/>

                       <forward name="add" path="/user/addUser.jsp"/>

                       <forward name="update" path="/user/updateUser.jsp"/>

                       <forward name="list" path="/user/userList.jsp"/>

    </action>

    </action-mappings>

    <message-resources parameter="com.amigo.struts. ApplicationResources " />

    <plug-in className="org.apache.struts.validator.ValidatorPlugIn">

    <set-property property="pathnames"

    value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml"/>

    <set-property property="stopOnFirstError" value="false" /> 

    </plug-in>

    </struts-config>

        

      參考文章:

    struts-config.xml配置文件講解(一)》

    Struts-config.xml配置文件講解(二)》

    posted on 2008-01-03 09:23 阿蜜果 閱讀(10949) 評論(4)  編輯  收藏 所屬分類: Struts


    FeedBack:
    # re: 【Struts1.2總結系列】struts.config.xml配置
    2008-01-03 09:32 | ci
    不錯,很清楚..  回復  更多評論
      
    # re: 【Struts1.2總結系列】struts-config.xml配置
    2008-07-03 22:54 | wm
    謝謝
      回復  更多評論
      
    # re: 【Struts1.2總結系列】struts-config.xml配置[未登錄]
    2009-02-10 14:51 | stone
    文章寫得很好,很有幫助。  回復  更多評論
      
    # re: 【Struts1.2總結系列】struts-config.xml配置[未登錄]
    2009-02-19 15:39 | 笨笨
    很不錯,謝謝啦!  回復  更多評論
      
    <2008年1月>
    303112345
    6789101112
    13141516171819
    20212223242526
    272829303112
    3456789

          生活將我們磨圓,是為了讓我們滾得更遠——“圓”來如此。
          我的作品:
          玩轉Axure RP  (2015年12月出版)
          

          Power Designer系統分析與建模實戰  (2015年7月出版)
          
         Struts2+Hibernate3+Spring2   (2010年5月出版)
         

    留言簿(263)

    隨筆分類

    隨筆檔案

    文章分類

    相冊

    關注blog

    積分與排名

    • 積分 - 2294288
    • 排名 - 3

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 一个人看的www免费视频在线观看| 无码国产精品一区二区免费式直播| 亚洲国产天堂久久综合网站| 成人午夜免费福利视频| 精品久久久久亚洲| 亚洲AV无码成人精品区在线观看| 免费无码AV片在线观看软件| 久久精品成人免费国产片小草| 亚洲电影在线播放| 亚洲国产一成久久精品国产成人综合| 青青草无码免费一二三区| 性色av极品无码专区亚洲| 亚洲AV午夜成人片| 四虎永久在线精品视频免费观看| 国产精品免费看久久久| 国产精品无码亚洲精品2021| 久久狠狠高潮亚洲精品| 亚洲成a人片在线观看久| 丁香花免费高清视频完整版 | 37pao成人国产永久免费视频| 国产成人va亚洲电影| 亚洲经典在线观看| 亚洲精品成人久久久| 扒开双腿猛进入爽爽免费视频| a色毛片免费视频| 色偷偷亚洲男人天堂| 亚洲中字慕日产2021| 国产亚洲一区二区手机在线观看| 四虎影院在线免费播放| 2021在线观看视频精品免费| 9久热这里只有精品免费| 性色av极品无码专区亚洲| 亚洲国产精品乱码在线观看97| 国产精品亚洲а∨无码播放| 国产精品成人四虎免费视频| 99久久99这里只有免费费精品 | 最新免费jlzzjlzz在线播放| 久热免费在线视频| 九九热久久免费视频| 一级毛片正片免费视频手机看 | 5555在线播放免费播放|