隨筆 - 312, 文章 - 14, 評論 - 1393, 引用 - 0

          導(dǎo)航

          <2009年2月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          1234567

          公告

          關(guān)注我的新浪微博

          我的著作









          常用鏈接

          留言簿(126)

          我參與的團隊

          隨筆分類(818)

          隨筆檔案(310)

          文章分類(1)

          文章檔案(8)

          相冊

          ADSL、3G查詢

          CSDN

          eclipse

          ibm

          Java EE

          Linux

          Web

          云服務(wù)

          代理網(wǎng)站

          關(guān)注的網(wǎng)站

          協(xié)議

          喜歡的Blog

          國內(nèi)廣告平臺

          圖書出版

          在線培訓(xùn)

          開發(fā)工具

          微博客戶端

          手機鈴聲

          操作系統(tǒng)

          • ReactOS
          • 一個與windowXP/2003兼容的操作系統(tǒng)

          數(shù)學(xué)

          文件格式

          源碼資源

          移動(Mobile)

          編程語言

          英語學(xué)習(xí)

          最新隨筆

          搜索

          •  

          積分與排名

          • 積分 - 1973302
          • 排名 - 6

          最新評論

          閱讀排行榜

          評論排行榜

          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>子元素。下面的代碼給出了一個標(biāo)準(zhǔn)的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ù)。下面的代碼給出了一個標(biāo)準(zhǔn)的配置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標(biāo)簽(如<html:link>)訪問。下面的代碼給出了一個標(biāo)準(zhǔn) 的全局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)先級。

              下面的代碼給出了一個標(biāo)準(zhǔn)的全局異常的配置方法:

          <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/>標(biāo)簽顯示錯誤信息,就會輸出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.propertieskey屬性表示application.properties文件的標(biāo)識。如果沒有key屬性,這個屬性文件就是默認的屬性文件。當(dāng)指定key屬性時,在使用這個屬性文件時,需要使用相關(guān)標(biāo)簽的bundle屬性指定這個key值。

              屬性文件中的值可以使用Struts標(biāo)簽來獲取,如屬性文件中的一個keykey.msg.submit。那么使用<bean:message>標(biāo)簽獲取這個屬性文件中的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 銀河使者 閱讀(4017) 評論(2)  編輯  收藏 所屬分類: javawebstruts1.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
          主站蜘蛛池模板: 公主岭市| 高唐县| 宁陕县| 利辛县| 六盘水市| 湘潭县| 东丽区| 灵宝市| 盐源县| 汉源县| 永川市| 赤峰市| 禹城市| 仁化县| 新郑市| 合川市| 剑川县| 麻阳| 西丰县| 东丰县| 昆明市| 郑州市| 迁安市| 维西| 山东| 宜都市| 甘南县| 金塔县| 大关县| 许昌县| 体育| 马尔康县| 定州市| 宁海县| 韩城市| 喜德县| 峨眉山市| 息烽县| 雅安市| 广汉市| 贵定县|