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

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

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

    隨筆 - 312, 文章 - 14, 評論 - 1393, 引用 - 0
    數(shù)據(jù)加載中……

    Struts1.x系列教程(24):配置文件總結(jié)

    本文為原創(chuàng),如需轉(zhuǎn)載,請注明作者和出處,謝謝

    上一篇:Struts1.x系列教程(23):使用Tiles模板進行布局

        要想使用Struts,至少要依靠兩個配置文件:web.xmlstruts-config.xml。其中web.xml用來安裝Struts框架。而struts-config.xml用來配置在Struts框架中要使用的資源。如FormbeanAction、插件等。如果使用了某些插件,如ValidatorTiles等。還可能需要其他的配置文件。雖然在前面的文章中已多次使用了這兩個配置文件,但都是分散介紹的。因此,在本文將對這些配置進行一下總結(jié)和回顧,以使讀者對Struts的配置有一個更清醒的認識。

    一、在web.xml中安裝Struts

        要想使用Struts,我們接觸到的第一個配置文件就是web.xml。實際上,Struts的入口點是一個名為ActionServletServlet。在第一次訪問Struts時,建立這個ActionServlet類的對象實例,并調(diào)用ActionServlet類中的init方法來進行初始化(其實是讀取struts-config.xml文件中的內(nèi)容,并根據(jù)struts-config.xml中的內(nèi)容來初始化相關(guān)的資源)。因此,就要在web.xml文件中安裝這個ActionServlet,并在ActionServlet的初始化參數(shù)中指定struts-config.xml的位置。

    二、struts-config.xml文件的結(jié)構(gòu)

        struts-config.xmlStruts的核心配置文件。也就是說,只要是使用Struts,就必須配置struts-config.xml文件。struts-config.xml文件的所有配置項都要放到頂層元素<struts-config>中,主要配置項有如下七個:

    1.       FormBean:在<form-beans>元素中配置。

    2.       Action映射:在<action-mappings>元素中配置。

    3.       全局Forwards:在<global-forwards>元素中配置。

    4.       全局異常(Exception):在<global-exceptions>元素中的配置。

    5.       控制器(Controller):在<controller>元素中配置。

    6.       信息資源:在<message-resources>元素中的配置。

    7.       插件:在<plug-in>元素中配置。

       下面我們就分別來看一下這七部分的具體配置方法。

    三、配置FormbeanAction映射

        這兩個配置項是Struts配置的核心,也就是說我,一個完整的Struts應(yīng)用程序都會擁有這兩項配置。

        每一個Formbean要在<form-beans>元素中定義一個<form-bean>子元素。下面的代碼給出了一個標準的Formbean的配置方法:

    <form-beans>
        <form-bean name="myForm" type="actionform.MyActionForm" />
    </form-beans>

        其中name屬性表示Formbean名,type屬性表示Formbean類的全名(包名+類名),一般type屬性值需要指定一個org.apache.struts.action.ActionForm類或其子類。type屬性值還可以指定一個動態(tài)form,如org.apache.struts.action.DynaActionForm,或這個類的子類。

    <form-beans>元素中定義的Formbean一般用于將客戶端瀏覽器提交的數(shù)據(jù)映射為Java Bean的形式,最終開發(fā)人員可以直接使用Java Bean來操作客戶端提交的數(shù)據(jù)。Formbean同時還有驗證數(shù)據(jù)的功能(在validate方法中驗證)。Formbean有時還會作為其他用途使用,如使用動態(tài)formLocaleAction類配合使用來進行本地化操作。

    每一個Action映射要在<action-mappings>元素中定義一個<action>子元素。Action映射的主要功能是將Struts動作的訪問路徑(一般以.do結(jié)尾)和Struts動作類相對應(yīng)。同時可以指定一個Formbean來接收和驗證客戶端提交的數(shù)據(jù)。下面的代碼給出了一個標準的配置Action動作的方法:   

    <action-mappings>
        <action name="myForm" path="/myaction"  scope="request"  validate="true" type="action.MyAction" input="/mystruts/error.jsp">
            
    <forward name="success" path=" /mystruts/success.jsp" />
       
    </action>
    </action-mappings>

    四、配置全局Forwards


        每一個全局的Forwards需要在<global-forwards>元 素中定義一個<forward>子元素。全局 Forwards可以被所有的Action、異常處理以及一些Struts標簽(如<html:link>)訪問。下面的代碼給出了一個標準 的全局Forward的配置方法:

    <global-forwards>
         <forward name="myforward" path="/mystruts/newProduct.jsp" />
    </global-forwards>

    五、配置局部和全局異常(Exception)

        Struts中處理異常的方法非常多,然后,為了使處理異常的方式更靈活。Struts框架允許以配置的方式來處理異常。

        Struts中的異常配置可分為局部和全局異常。這兩種異常配置的方法完全一樣,只是配置代碼的位置不同。配置局部異常的<exception>元素在<action>元素中,而全局異常的<exception>元素在<global-exceptions >元素中。局部異常的優(yōu)先級大于全局異常的優(yōu)先級。

        下面的代碼給出了一個標準的全局異常的配置方法:

    <global-exceptions >
        <exception key="error.name.blank"  type="java.lang.Exception" path="/error.jsp"/>
    </global-exceptions>

        其中key屬性表示在屬性文件中的key,一但Struts Actionexecute方法拋出異常,Struts首先會在局部和全局異常中匹配type屬性所指定的異常類型。如果匹配成功,就會跳轉(zhuǎn)到path屬性所指的Web資源(在本例中是“/error.jsp”)。如果在error.jsp頁面中使用<html:errors/>標簽顯示錯誤信息,就會輸出key屬性所對應(yīng)的值。   
        <exception>元素除了可以使用path屬性指定要跳轉(zhuǎn)的Web資源外,也可以使用handler屬性指定用于處理異常的類。如下面的代碼所示:   

    <global-exceptions>
        <exception key="error.email. invalid"  type="java.lang.Exception" handler="exceptions.EmailException"/>
    </global-exceptions>

        其中exceptions.EmailException類必須繼承org.apache.struts.action.ExceptionHandler類,而且我們必須覆蓋execute方法。 
        ExceptionHandler類的execute方法的定義如下:

      public ActionForward execute( Exception ex, ExceptionConfig ae, ActionMapping mapping,
                               ActionForm formInstance, HttpServletRequest request,
                               HttpServletResponse response) 
    throws ServletException ;

    六、配置控制器(Controller)


        控制器可能是這七個配置項上使用最少的一項。它主要用來覆蓋一些默認的Struts設(shè)置。下面是幾個常用的Struts設(shè)置:

        1. maxFileSize:指定在文件上傳時的最大文件尺寸。可以使用K、M和G作為單位。如maxFileSize="2M"。maxFileSize的值只能是整數(shù),不能是小數(shù),如maxFileSize=1.2M是不合法的。

        2. nocache:告訴Struts是否應(yīng)該緩沖內(nèi)容。指定為nocache="true”,Struts將不會緩沖內(nèi)容。默認值為true。

        3. contentType:指定默認的ContentType字段值,如果要發(fā)送的內(nèi)容的默認格式是HTML,我們可以指定contentType的值為“text/html”。

        下面的代碼是一個完成的控制器的配置:   

    <controller maxFileSize="2M"  contentType = “text/html”  nocache = “false” />
       

    七、配置信息資源

        信息資源使用<message-resources>元素進行配置。下面是一個配置信息資源的例子:

    <message-resources parameter="struts.application" key="global" />

        其中parameter屬性表示保存信息資源的屬性文件的位置,對于上面的代碼來說,屬性文件的位置是<Web根目錄>"WEB-INF"classes"struts"application.properties。key屬性表示application.properties文件的標識。如果沒有key屬性,這個屬性文件就是默認的屬性文件。當指定key屬性時,在使用這個屬性文件時,需要使用相關(guān)標簽的bundle屬性指定這個key值。

        屬性文件中的值可以使用Struts標簽來獲取,如屬性文件中的一個keykey.msg.submit。那么使用<bean:message>標簽獲取這個屬性文件中的key值的代碼如下:

      <bean:message key="key.msg.submit" bundle=”global”/>


         
    屬性文件也可以用在獲得錯誤信息上,如在validate方法中使用如下的代碼來指定錯誤提示信息:

      errors.add("name",new ActionMessage("error.name.blank")); 


        而在JSP頁面中可以使用如下的代碼來顯示這個錯誤信息:

    <html:errors property="name" bundle="global"/>

    八、配置Struts插件

        Struts之所以強大,在很大程度上取決于它支持通過插件的方式進行擴展,如前面講的ValidatorTiles,都是以Struts插件形式發(fā)布的。Struts插件使用<plug-in>元素進行配置,如下面的代碼所示:

    <plug-in className="org.apache.struts.validator.ValidatorPlugIn">
         <set-property property="pathnames" value="/WEB-INF/validator-rules.xml, /WEB-INF/validator.xml" />
    </plug-in>

        其中className屬性指定了Struts要調(diào)用的插件類名。property屬性指定了插件需要的屬性名,而value屬性指定了相應(yīng)的屬性值。





    Android開發(fā)完全講義(第2版)(本書版權(quán)已輸出到臺灣)

    http://product.dangdang.com/product.aspx?product_id=22741502



    Android高薪之路:Android程序員面試寶典 http://book.360buy.com/10970314.html


    新浪微博:http://t.sina.com.cn/androidguy   昵稱:李寧_Lining

    posted on 2009-02-27 17:40 銀河使者 閱讀(4013) 評論(2)  編輯  收藏 所屬分類: java 、web 、struts1.x

    評論

    # re: Struts1.x系列教程(24):配置文件總結(jié)  回復(fù)  更多評論   

    拜讀
    2009-02-28 09:54 | 冬天出走的豬

    # re: Struts1.x系列教程(24):配置文件總結(jié)  回復(fù)  更多評論   

    現(xiàn)在復(fù)習(xí)復(fù)習(xí).
    2009-03-02 16:17 | huyi0616
    主站蜘蛛池模板: av成人免费电影| 在线观看亚洲AV日韩AV| 国产亚洲一区二区精品| 久久久久噜噜噜亚洲熟女综合 | 久久水蜜桃亚洲AV无码精品| 亚洲一区二区三区在线观看网站| 亚洲av无码一区二区三区天堂古代 | 国产一级婬片A视频免费观看| 韩国免费a级作爱片无码| 不卡视频免费在线观看| 久久精品视频免费播放| 亚洲电影免费观看| 2021免费日韩视频网| 女性自慰aⅴ片高清免费| 国产男女猛烈无遮档免费视频网站 | 16女性下面无遮挡免费| 免费99精品国产自在现线| 天天看片天天爽_免费播放| 在线看片无码永久免费aⅴ| 免费久久精品国产片香蕉| 久久久无码精品亚洲日韩软件| 国产亚洲A∨片在线观看| 亚洲综合日韩中文字幕v在线| 亚洲国产综合人成综合网站00| 国产精品亚洲专区在线观看 | 亚洲国产日韩女人aaaaaa毛片在线 | 国产成人无码a区在线观看视频免费| 亚洲成a人在线看天堂无码| 人人狠狠综合久久亚洲婷婷| 亚洲最大中文字幕| 久久综合亚洲色hezyo| 国产特黄一级一片免费 | 国产视频精品免费视频| 最近中文字幕国语免费完整| 在线观看无码的免费网站| 久久精品国产亚洲Aⅴ香蕉| 久久久亚洲欧洲日产国码是AV| 亚洲女子高潮不断爆白浆| 精品国产福利尤物免费| 国产精品久久久久久久久免费| 日本一道一区二区免费看|