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

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

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

    【永恒的瞬間】
    ?Give me hapy ?

    Web.xml 文件對(duì)于配置任何 Java Web 應(yīng)用都是必須的 . 當(dāng)配置 Struts 應(yīng)用時(shí) , 還應(yīng)該在 web.xml 文件中配置和 Struts 相關(guān)的配置選項(xiàng) . 一下講述配置 Struts 應(yīng)用的必要步驟 .

    ?

    1 ·配置 Struts ActionServlet

    第一步用 <servlet> 元素來聲明 ActionServlet

    <servlet> 的子元素中,經(jīng)常用到的有:

    ?? · <servlet-name> 元素用來定義 Servlet 的名稱。

    ?? · <servlet-class> 元素用來置頂 Servlet 的完整類名。

    ?? · <init-param> 元素用于配置 Servlet 初始化參數(shù)。

    第二步為配置 <servlet-mapping> 元素,用來指定 ActionServlet 可以處理哪些 URL

    有子元素 <servlet-name> <url-pattern> ,注意,這里的 <servlet-name> 必須和 <servlet> 元素中的 <servlet-name> 匹配。

    ?

    ** 提示 **

    ? 不管應(yīng)用中包含多少子應(yīng)用,都只需要配置一個(gè) ActionServlet 。有些開發(fā)者希望設(shè)置多個(gè) ActionServlet 類來處理應(yīng)用中不同的功能,其實(shí)這是不必要的,因?yàn)?/span> Serlvet 本身支持多線程。而且,目前的 Struts 框架只允許在應(yīng)用中配置一個(gè) ActionSerlvet

    ?

    2 ·配置歡迎文件清單

    <welcome-file-list> 元素中可以包含多個(gè) <welcome-file> 子元素,當(dāng) Web 容器調(diào)用 Web 應(yīng)用的歡迎文件時(shí),首先尋找第一個(gè) <welcome-file> 指定的文件。如果這個(gè)文件存在,將把這一個(gè)文件返回給客戶;如果這個(gè)文件不存在, Web 容器將依次尋找下一個(gè)歡迎文件,直到找到為止;如果都不存在,服務(wù)器將向客戶返回“ HTTP 404 Not Found ”的出錯(cuò)信息。

    ?

    3 ·配置錯(cuò)誤處理

    <error-page>

    ? <error-code></error-code>

    ? <location></location>

    </error-page>

    如果在 web.xml 文件中做了以上配置,當(dāng) Web 容器捕獲到錯(cuò)誤時(shí)(如: HTTP 404 HTTP 500 ),將根據(jù)錯(cuò)誤代碼減縮 <error-page> 的子元素 <error-code> ,如果有匹配項(xiàng)就返回 <location> 子元素指定的文件。

    ? 也可以為 Web 容器捕獲的 Java 異常配置 <error-page> 元素,這是需要設(shè)置 <exception-type> 子元素,它用于指定 Java 異常類。 Web 容器可能捕獲如下異常:

    ? · RuntimeException Error

    ? · ServletException 或它的子類。

    ? · IOException 或它的子類。

    這里的配置信息如下:

    <error-page>

    ? <exception-type></exception-type>

    ? <location></location>

    </error-page>

    ?

    4 ·配置 Struts 標(biāo)簽庫

    <taglib> 元素有兩個(gè)子元素: <taglib-uri> <taglib-location> <taglib-uri> 元素指定標(biāo)簽庫的相對(duì)或者絕對(duì) URI 地址, Web 應(yīng)用將根據(jù)這一 URI 來訪問標(biāo)簽庫; <taglib-location> 元素指定標(biāo)簽庫描述文件在文件資源系統(tǒng)中的物理位置。

    如果 Web 應(yīng)用中沒有使用 Struts 標(biāo)簽庫,就沒有必要在 web.xml 文件中配置它。此外,也可以按以上方式在 web.xml 文件中配置用戶自定義的客戶化標(biāo)簽庫

    ?

    ?

    Struts配置文件簡(jiǎn)介
    Struts?framework根據(jù)配置文件使得ServletAction,ActionMapping,Action , ActionForm這幾個(gè)不同層次的組件相互交互,協(xié)調(diào)的工作。這些配置文件是在系統(tǒng)啟動(dòng)的時(shí)候,讀入導(dǎo)內(nèi)存中,供控制器使用的。
    Struts?framework主要包括三部分的配置描述,一個(gè)是指定有關(guān)Struts?Controller及其相關(guān)的的配置描述(Initialization?Parameters),一個(gè)對(duì)struts?tag?lib的描述,一個(gè)是struts組件(ActionMapping,Action,ActionForm)之間相互映射協(xié)調(diào)的關(guān)系

    有關(guān)Struts?Controller及其相關(guān)的的配置描述
    ????因?yàn)镾truts?Controller的主要類ActionServlet是繼承自HttpServlet,所以必須像配置一個(gè)Servlet那樣在部署描述符(Web.xml)中配置ActionServlet類及其訪問映射。
    ????當(dāng)您第一次創(chuàng)建基于Struts的Web應(yīng)用程序時(shí),將為您創(chuàng)建一個(gè)部署描述符,這通常就足夠了。該文件包括下列條目:
    ?????<servlet>條目定義用于Web應(yīng)用程序的servlet(在本例中,這是唯一的servlet):
    —??<servlet-name>?和<servlet-class>指示ActionServlet?(標(biāo)識(shí)為“操作”)接收HTTP請(qǐng)求并確定如何響應(yīng)。
    —??<init-param>表示servlet初始化參數(shù).
    -????“config”指示ActionServlet的行為由指定的配置文件來指導(dǎo),該配置文件通常具有以下名稱:
    \WEB-INF\struts-config.xml
    -????“debug”具有整數(shù)值,它指示將有關(guān)處理的詳細(xì)信息寫至控制臺(tái)的程度。
    -????”detail”具有整數(shù)值,它指示將“映射”詳細(xì)信息(如后面所述)寫至控制臺(tái)的程度。
    —??<load-on-startup>導(dǎo)致在啟動(dòng)應(yīng)用程序時(shí)裝入servlet。
    ?????<servlet-mapping>元素標(biāo)識(shí)這樣的命名模式:當(dāng)命名模式由URL進(jìn)行匹配時(shí),Web服務(wù)器就將控制權(quán)移交給ActionServlet。考慮下面各種情況:
    —??訪問了ActionServlet,原因是“操作”(<servlet-mapping>中的<servlet-name>元素的內(nèi)容)與“操作”(<servlet>中的<servlet-name>元素的內(nèi)容)相匹配。
    ????—??<servlet-mapping>元素指定URL的結(jié)尾的命名模式。每個(gè)URL的開頭都是應(yīng)用程序上下文路徑。按照慣例,ActionServlet調(diào)用對(duì)象以響應(yīng)與命名模式“*do”(其中“*”是通配符)一致的URL。
    ?????<welcome-file-list>元素指示獲得初始控制權(quán)的特定于應(yīng)用程序的代碼;在本例中,Web服務(wù)器直接從Web?Content目錄中調(diào)用index.jsp。
    ?????<error-page>元素指示顯示哪個(gè)JSP來響應(yīng)錯(cuò)誤;在本例中,錯(cuò)誤為如下所示:
    —??404??(找不到資源)
    —??500??(Web服務(wù)器內(nèi)部發(fā)生錯(cuò)誤)
    ?????每個(gè)<taglib>元素都使相對(duì)URL(相對(duì)于Web.xml)與標(biāo)記庫描述符(相對(duì)于Web應(yīng)用程序根目錄)相關(guān)聯(lián)。每個(gè)JSP都可以使用同一個(gè)URL來表示給定的標(biāo)記庫,而Web.xml確定引用了哪個(gè)文件。
    有關(guān)struts?tag?lib的配置描述
    ????如果你的web?application打算使用Struts的taglib,那么你有必要在web.xml中對(duì)struts?taglib進(jìn)行配置描述。
    有關(guān)Struts?Action?Mapping的配置描述
    ????  作為先前描述的web.xml設(shè)置的結(jié)果,Web應(yīng)用程序服務(wù)器將請(qǐng)求的一個(gè)子集按路徑發(fā)送至ActionServlet,它通常調(diào)用一系列操作和JSP。ActionServlet的響應(yīng)是基于配置文件struts-config.xml的內(nèi)容的。有關(guān)其DTD文檔的描述,請(qǐng)參考http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd
    ????一般struts-config(version1.1)包含了如下幾個(gè)部分:
    (1)form-bean
    ????(2)global-forwards
    ????(3)action-mappings
    ????(4)data-sources

    ????我們知道,對(duì)于這樣的一個(gè)請(qǐng)求(例如,表示為“/login.do”),執(zhí)行下列步驟:
    1、????尋找操作類對(duì)象(繼承org.?apache.struts.action.Action的類)
    2、????ActionServlet調(diào)用操作類對(duì)象的執(zhí)行方法
    操作類中的執(zhí)行方法的特征符為如下所示:
    public?ActionForward??execute(
    ??????ActionMapping?mapping,
    ??????ActionForm?form,
    ??????HttpServletRequest?request,
    ??????HttpServletResponse?response)
    ?????映射對(duì)象(ActionMapping),它包含指示如何響應(yīng)方法的每個(gè)可能結(jié)果的規(guī)則(“映射”)
    ?????Struts表單bean(ActionForm),它保存發(fā)送至HTML表單或接收自HTML表單的數(shù)據(jù)
    ?????請(qǐng)求和響應(yīng)對(duì)象(HttpServletReques/?HttpServletResponse)

    3、????從執(zhí)行方法返回ActionForward對(duì)象,用于指導(dǎo)ActionServlet接著訪問哪個(gè)操作類或JSP
    返回的ActionForward對(duì)象中的信息取決于兩個(gè)值:
    ?????方法的結(jié)果(如在“成功”或“故障”等字符串中所述)
    ?????映射對(duì)象,它包含從Struts配置文件中讀取的信息


    要弄明白某些運(yùn)行時(shí)關(guān)系,要明白struts-config.xml該文件包括下面的一組條目:
    ?????<form-beans>標(biāo)記標(biāo)識(shí)每個(gè)表單bean
    ?????<action-mappings>標(biāo)記包括用于指導(dǎo)應(yīng)用程序流的信息,每個(gè)<action>子標(biāo)記都使相對(duì)URL與操作類和潛在的后續(xù)操作相關(guān)。
    Form-bean元素
    Struts配置文件中的一個(gè)示例<form-bean>子元素為如下所示:
     <form-bean?name=“registerForm”??type=“strutscommon.RegisterForm”/>
    每個(gè)<form-bean>子元素都包括下列屬性:
    name
    表單bean的名稱,稍后在配置文件中會(huì)用到。ActionServlet舉例說明了該bean(如果需要的話)并在將對(duì)bean的引用存儲(chǔ)在請(qǐng)求或會(huì)話對(duì)象中時(shí)將該名稱用作鍵。
    type
         類的全限定名稱,它繼承org.apache.struts.action.ActionForm該類必須在類路徑中。接受“Struts貿(mào)易樣本”中的注冊(cè)的表單bean包括HTML注冊(cè)表單中每個(gè)字段的getter?和setter方法。該bean還包括驗(yàn)證方法,如下節(jié)“驗(yàn)證”中所述。
    Action元素
    ???Struts配置文件中的一個(gè)示例<action>元素為如下所示:
      <action?path=“/register”
    ????????type=“strutsEGL.RegisterAction”
    ???????name=“registerForm”
    ???????input=“/register.jsp”
    ???????scope=“request”
    ???????<forward?name=“success”path=“/home.do”/>
    ???????<?forward?name=“failure”path=“/register.jsp”/>
    ?????</action>
    每個(gè)<action>元素都包括下列屬性中的某些屬性或所有屬性:
    ?path
    ?????將請(qǐng)求指定為非限定URL,不帶文件擴(kuò)展名(例如,“/register”)請(qǐng)求是根據(jù)<action>元素中的其它屬性來處理的,并且是用戶輸入的結(jié)果或者是在different<action>元素中標(biāo)識(shí)的轉(zhuǎn)發(fā)的結(jié)果。
    type
    ?????指定在發(fā)出請(qǐng)求時(shí)調(diào)用其執(zhí)行方法的操作類的全限定名。該類必須在類路徑中。
       注:不指定要實(shí)例化的類,可以通過使用forward屬性來轉(zhuǎn)發(fā)請(qǐng)求,該屬性在“Struts貿(mào)易樣本”中未使用,并且與后面描述的<forward>子元素不相同。
    name
    ?????用于保存發(fā)送至HTML表單或接收自HTML表單的數(shù)據(jù)表單bean的名稱。
      ?input
    ?????指定相對(duì)URL(例如,“/register.do”或“/index.jsp”)必須包括后綴,
    如果表單bean的驗(yàn)證方法指示發(fā)生了輸入錯(cuò)誤,則會(huì)調(diào)用URL;有關(guān)詳細(xì)信息,參見下節(jié)的“驗(yàn)證”。
      ?scope
    ?????????指定將對(duì)表單?bean的引用存儲(chǔ)在哪個(gè)作用域中。其值為“會(huì)話”(缺省值)或“請(qǐng)求”。
        ?Struts配置文件中的每個(gè)<action>元素還包括子元素<forward>,它指定從方法結(jié)果至后續(xù)調(diào)用的映射。每個(gè)<forward>子元素都包括下列屬性
      name?
    指定導(dǎo)致在運(yùn)行時(shí)使用當(dāng)前映射的字符串(例如,“success”),但是
    只限于以下情況:在?type?中引用的操作類的執(zhí)行方法使用完全相同
    的字符串來配置返回至ActionServlet的?ActionForward對(duì)象。下面
    的執(zhí)行方法不是很重要,但是會(huì)導(dǎo)致使用“success”映射:
    ??
    ?public?ActionForward?exectue(
    ???ActionMapping?mapping,
    ???ActoinForm?form,
    ???HttpServletRequest?request,
    ???HttpServletResponse?response)
    ???Throws?IOException,ServletException

    ???ActionForward?forward=new?ActionForward();
    ???Forward=mapping,findForward(“success”);
    ???return(forward);

    ?????path
    ??????????指定非限定URL(例如,“/home.do”?或“/index.jsp”)必須包括文件擴(kuò)展名,僅當(dāng)使用當(dāng)前映射時(shí)才會(huì)調(diào)用該URL,轉(zhuǎn)發(fā)操作類是根據(jù)different<action>元素中的屬性來處理的,尤其是,在其path屬性標(biāo)識(shí)相同URL的<action>元素中。

    ????有必要提一下的是,在struts1.1中,提出了對(duì)Multiple?Application?Support。在struts的早先版本中,只有一個(gè)struts配置文件,一般叫struts-config.xml。但是,對(duì)于越來越復(fù)雜的應(yīng)用系統(tǒng)的發(fā)展,只有一個(gè)地方存放這個(gè)一個(gè)文件,對(duì)大型項(xiàng)目來說,使用和修改這個(gè)配置文件,使其成為了一個(gè)應(yīng)用的瓶頸問題。在struts1.1中,你可以定義多了配置文件協(xié)同工作。

    Struts 框架在啟動(dòng)時(shí)會(huì)讀入其配置文件,根據(jù)它來創(chuàng)建和配置各種 Struts 組件。 Struts 配置文件使得開發(fā)者可以靈活地組裝和配置各個(gè)組件,提高了應(yīng)用軟件的可擴(kuò)展性和靈活性,可以避免硬編碼。 Struts 配置文件是基于 XML 的。

    ?

    · 1 org.apache.struts.config

    ? Struts1.1 中加入了 org.apache.struts.config 包。在 Struts 應(yīng)用啟動(dòng)時(shí),會(huì)把 Struts 配置文件中的配置信息讀入到內(nèi)存中,并把他們存放在 cofnig 包中相關(guān) JavaBean 類的實(shí)例中。

    org.apache.struts.config 包中的每一個(gè)類都和 Struts 配置文件中特定的配置元素對(duì)應(yīng)。

    Struts 框架完成了對(duì)配置文件的驗(yàn)證和解析后,就把配置文件中的信息存放在這些類的實(shí)例中。這些類的實(shí)例可以充當(dāng)配置信息的運(yùn)行時(shí)容器, Struts 組件可以方便地通過他們來獲取配置信息。

    org.apache.struts.config.ModuleConfig Struts 框架中扮演了十分重要的角色。它是整個(gè) org.apache.struts.config 包的核心,在 Struts 應(yīng)用運(yùn)行時(shí)用來存放整個(gè) Struts 應(yīng)用的配置信息。如果有多個(gè)子應(yīng)用,每個(gè)子應(yīng)用都會(huì)有一個(gè) ModuleConfig 對(duì)象。 ModuleConfig Struts 配置文件的根元素 <struts-config> 對(duì)應(yīng)。 <struts-config> 根元素中包含 <form-bean> <action> <forward> 等一系列子元素,因此 ModuleConfig 中包含了和每個(gè)子元素對(duì)應(yīng)的配置類實(shí)例。

    org.apache.struts.config.ConfigRuleSet 類的功能不同于其他類,它包含了解析 Struts 配置文件所需要的一組規(guī)則。在應(yīng)用啟動(dòng)時(shí),該類負(fù)責(zé)構(gòu)造 org.apache.struts.config 包中其他用于保存配置信息的 JavaBean 類的實(shí)例。

    下面分別介紹 Struts 配置文件中每個(gè)元素的用法。

    ?

    · 2 <struts-config> 元素

    <struts-cofnig> 元素是 Struts 配置文件的根元素,和它對(duì)應(yīng)的配置類為 org.apache.struts.config.ModuleConfig 類。 <struts-config> 元素有 8 個(gè)子元素。

    Struts 配置文件中,必須按照它的 DTD 指定的先后順序來配置 <struts-config> 元素的各個(gè)子元素,如果顛倒了這些子元素在配置文件中的順序,在 Struts 應(yīng)用啟動(dòng)時(shí)就會(huì)生成 XML 解析錯(cuò)誤。

    ?

    · 3 <data-sources> 元素

    <data-sources> 元素用來配置應(yīng)用所需要的數(shù)據(jù)源。數(shù)據(jù)源負(fù)責(zé)建立和特定數(shù)據(jù)庫的連接,許多數(shù)據(jù)源采用連接池機(jī)制實(shí)現(xiàn),以便提高數(shù)據(jù)庫訪問性能。 Java 語言提供了 javax.sql.DataSource 接口,所有的數(shù)據(jù)源必須實(shí)現(xiàn)該接口。許多應(yīng)用服務(wù)器和 Web 容器提供了內(nèi)在的數(shù)據(jù)源組件,很多數(shù)據(jù)庫廠商也提供了數(shù)據(jù)源的實(shí)現(xiàn)。

    <data-sources> 元素包含零個(gè),一個(gè)或多個(gè) <data-source> 子元素。 <data-source> 元素用于配置特定的數(shù)據(jù)源,它可以包含多個(gè) <set-property> 子元素。 <set-property> 元素用于設(shè)置數(shù)據(jù)源的各種屬性。

    <data-source> 元素的 type 屬性用來指定數(shù)據(jù)源的實(shí)現(xiàn)類。開發(fā)者應(yīng)該根據(jù)實(shí)際應(yīng)用的需要來選用合適的數(shù)據(jù)源實(shí)現(xiàn)。

    配置了數(shù)據(jù)源后,就可以在 Action 類中訪問數(shù)據(jù)源。在 org.apache.struts.action.Action 類中定義了 getDataSource(HttpRequest) 方法,它用于獲取數(shù)據(jù)源對(duì)象的引用。

    也可以在配置文件中聲明多個(gè)數(shù)據(jù)源,此時(shí)需要為每一個(gè)數(shù)據(jù)源分配唯一的 key 值,通過該值來標(biāo)識(shí)特定的數(shù)據(jù)源。

    ?

    · 4 <form-beans> 元素

    <form-beans> 元素用來配置多個(gè) ActionForm Bean <form-beans> 元素包含零個(gè)或多個(gè) <form-bean> 子元素。每個(gè) <form-bean> 元素又包含多個(gè)屬性。

    <form-bean> 元素的屬性

    屬性

    描述

    className

    指定和 <form-bean> 元素對(duì)應(yīng)的配置類,默認(rèn)值為 org.apache.struts.config.FormBeanConfig 。如果在這里設(shè)置自定義的類,該類必須擴(kuò)展 FormBeanConfig

    name

    指定該 ActionForm Bean 的唯一標(biāo)識(shí)符,整個(gè) Struts 框架用該標(biāo)識(shí)符來引用這個(gè) bean 。該屬性是必需的。

    type

    指定 ActionForm 類的完整類名(類的報(bào)名也包含在內(nèi)),該屬性是必需的

    ?

    ? 如果配置動(dòng)態(tài) ActionForm Bean ,還必須配置 <form-bean> 元素的 <form-property> 子元素。 <form-property> 元素用來指定表單字段,它有四個(gè)屬性。

    <form-property> 元素的屬性

    屬性

    描述

    className

    指定和 <form-property> 元素對(duì)應(yīng)的配置類,默認(rèn)值為 org.apache.struts.config.FormPropertyConfig

    initial

    以字符串的形式設(shè)置表單字段的初始值。如果沒有設(shè)置該屬性,則基本類型的表單字段的默認(rèn)值為 0 ,對(duì)象類型的表單字段的默認(rèn)值為 null

    name

    指定表單字段的名字。該屬性是必需的

    type

    指定表單字段的類型。如果表單資源為 Java 類,必須給出完整的類名。該屬性是必需的。

    ?

    · 5 <global-exceptions> 元素

    <global-exceptions> 元素用于配置異常處理。 <global-exceptions> 元素可以包含零個(gè)或者多個(gè) <exception> 元素。

    <exception> 元素用來設(shè)置 Java 異常和異常處理類 org.apache.struts.action.ExceptionHandler 之間的映射。

    <exception> 元素的屬性

    屬性

    描述

    className

    指定和 <exception> 元素對(duì)應(yīng)的配置類。默認(rèn)值為 org.apache.struts.config.ExceptionConfig

    handler

    指定異常處理類。默認(rèn)值為 org.apache.struts.action.ExceptionHandler

    key

    指定在 Resource Bundle 中描述該異常的消息 key

    path

    指定當(dāng)異常發(fā)生時(shí)的轉(zhuǎn)發(fā)路徑

    scope

    指定 ActionMessages 實(shí)例的存放范圍,可選值包括 request session ,此項(xiàng)的默認(rèn)值為 request

    type

    指定所需處理的異常類的名字。此項(xiàng)是必需的

    bundle

    指定 Resource Bundle

    ?

    · 6 <global-forwards> 元素

    <global-forwards> 元素用來聲明全局的轉(zhuǎn)發(fā)關(guān)系。 <global-forwards> 元素由零個(gè)或者多個(gè) <forward> 元素組成。 <forward> 元素用于把一個(gè)邏輯名映射到特定的 URL 。通過這種方式, Action 類或者 JSP 文件無需要指定實(shí)際的 URL ,只要指定邏輯名就能實(shí)現(xiàn)請(qǐng)求轉(zhuǎn)發(fā)或者重定向,這可是減弱控制組件和視圖組件之間的耦合,并且有助于維護(hù) JSP 文件。

    <forward> 元素的屬性

    屬性

    描述

    className

    <forward> 元素對(duì)應(yīng)的配置類,默認(rèn)值為 org.apache.struts.action.ActionForard

    contextRelative

    如果此項(xiàng)為 true ,表示當(dāng) path 屬性以“ / ”開頭時(shí),給出的是相對(duì)于當(dāng)前上下文的 URL 。此項(xiàng)的默認(rèn)值為 false

    name

    轉(zhuǎn)發(fā)路徑的邏輯名。此項(xiàng)是必需的

    path

    指定轉(zhuǎn)發(fā)或重定向的 URL 。此項(xiàng)是必需的,必需以“ / ”開頭。當(dāng) contextRelative 屬性為 false 時(shí),表示 URL 路徑相對(duì)于當(dāng)前應(yīng)用 (application-relative) ;當(dāng) contextRelative 屬性為 true 時(shí),表示 URL 路徑相對(duì)于當(dāng)前上下文 (context-relative)

    redirect

    當(dāng)此項(xiàng)為 true 時(shí),表示執(zhí)行重定向操作;當(dāng)此項(xiàng)為 false 時(shí),表示執(zhí)行請(qǐng)求轉(zhuǎn)發(fā)操作。此項(xiàng)默認(rèn)值為 false

    ?

    · 7 <action-mappings> 元素

    <action-mappings> 元素包含零個(gè)或者多個(gè) <action> 元素。 <action> 元素描述了從特定的請(qǐng)求路徑到相應(yīng)的 Action 類的映射。

    <action> 元素中可以包含多個(gè) <exception> <forward> 子元素,他們分別配置局部的異常處理及請(qǐng)求轉(zhuǎn)發(fā)僅被當(dāng)前的 Action 所訪問。

    <global-exceptions> 元素中定義的 <exception> 子元素代表全局的異常配置。在 <global-forwards> 元素中定義的 <forward> 子元素代表全局的請(qǐng)求轉(zhuǎn)發(fā)。在不同位置配置 <exception> <forward> 元素的語法和屬性是一樣的。

    <action> 元素的屬性

    屬性

    描述

    attribute

    設(shè)置和 Action 關(guān)聯(lián)的 ActionForm Bean request session 范圍內(nèi)的屬性 key 。例如,假定 Form Bean 存在于 request 范圍內(nèi),并且此項(xiàng)為“ myBean ”,那么 request.getAttribute(“MyBean”) 就可以返回該 Bean 的實(shí)例。此項(xiàng)為可選項(xiàng)。

    className

    <action> 元素對(duì)應(yīng)的配置元素。默認(rèn)值為 org.apache.struts.action.ActionMapping

    forward

    指定轉(zhuǎn)發(fā)的 URL 路徑

    include

    指定包含的 URL 路徑

    input

    指定包含輸入表單的 URL 路徑。當(dāng)表單驗(yàn)證失敗時(shí),將把請(qǐng)求轉(zhuǎn)發(fā)到該 URL

    name

    指定和該 Action 關(guān)聯(lián)的 ActionForm Bean 的名字。該名字必需在 <form-bean> 元素中定義過。此項(xiàng)是可選項(xiàng)

    path

    指定訪問 Action 的路徑,它以“ / ”開頭,沒有擴(kuò)展名

    parameter

    指定 Action 的配置參數(shù)。在 Action 類的 execute() 方法中,可以調(diào)用 ActionMapping 對(duì)象的 getParameter() 方法來讀取該配置參數(shù)

    roles

    指定允許調(diào)用該 Action 的安全角色。多個(gè)角色之間以逗號(hào)隔開。在處理請(qǐng)求時(shí), RequestProcessor 會(huì)根據(jù)該配置項(xiàng)來決定用戶是否有調(diào)用 Action 的權(quán)限

    scope

    指定 ActionForm Bean 的存在范圍,可選值為 request session 。默認(rèn)值為 session

    type

    指定 Action 類的完整類名

    unknown

    如果此項(xiàng)為 true ,表示可以處理用戶發(fā)出的所有無效的 Action URL 。默認(rèn)值為 false

    validate

    指定是否要先調(diào)用 ActionForm Bean validate() 方法。默認(rèn)值為 true

    ?

    提示: <action> 元素的 forward include type 屬性相互排斥,也就是說只能設(shè)置其中的一項(xiàng)。 forward 屬性的作用和 org.apache.struts.actions.ForwardAction 類相同。 Include 屬性的作用和 org.apache.struts.actions.IncludeAction 類相同。

    ? 如果在 <action> 元素中定義了局部的 <forward> 元素,它的優(yōu)先級(jí)別高于全局的 <forward> 元素。

    <Action> forward 屬性和 <forward> 子元素是兩個(gè)不同的概念。 Forward 屬性指定和 path 屬性匹配的請(qǐng)求轉(zhuǎn)發(fā)路徑。

    ?

    · 8 <controller> 元素

    <controller> 元素用于配置 ActionServlet

    <controller> 元素的屬性

    屬性

    描述

    bufferSize

    指定上載文件的輸入緩沖的大小。該屬性為可選項(xiàng),默認(rèn)值為 4096

    className

    指定和 <controller> 元素對(duì)應(yīng)的配置類。默認(rèn)值為 org.apache.struts.config.ControllerConfig

    contentType

    指定響應(yīng)結(jié)果的內(nèi)容類型和字符編碼。該屬性為可選項(xiàng),默認(rèn)值為 text/html 。如果在 Action JSP 網(wǎng)頁中也設(shè)置了內(nèi)容類型和字符編碼,將會(huì)覆蓋該設(shè)置

    locale

    指定是否把 Locale 對(duì)象保存到當(dāng)前用戶的 Session 中。默認(rèn)值為 false

    processorClass

    指定負(fù)責(zé)處理請(qǐng)求的 Java 類的完整類名。默認(rèn)值為 org.apache.struts.action.RequestProcessor 。如果把此項(xiàng)設(shè)置為自定義的類,那么應(yīng)該保持該類擴(kuò)展了 org.apache.struts.action.RequestProcessor

    tempDir

    指定處理文件上傳的臨時(shí)目錄。如果此項(xiàng)沒有設(shè)置,將采用 Servlet 容器為 Web 應(yīng)用分配的臨時(shí)工作目錄

    nochache

    如果為 true ,在響應(yīng)結(jié)果中將加入特定的頭參數(shù): Pragma Cache-Control Expires ,防止頁面被存儲(chǔ)在客戶瀏覽器的緩存中。默認(rèn)值為 false

    ?

    如果應(yīng)用包含多個(gè)子應(yīng)用,可以在每個(gè)子應(yīng)用的 Struts 配置文件中配置 <controller> 元素。這樣,盡管這些子應(yīng)用共享同一個(gè) ActionServlet 對(duì)象,但是它們可以使用不同的 RequestProcessor 類。

    ?

    · 9 <message-resources> 元素

    <message-resources> 元素用來配置 Resource Bundle Resource Bundle 用于存放本地化消息文本。

    <message-resources> 元素的屬性

    屬性

    描述

    className

    <message-resources> 元素對(duì)應(yīng)的配置類。默認(rèn)值為 org.apache.struts.config.MessageResourcesConfig

    factory

    指定消息資源的工廠類。默認(rèn)值為 org.apache.struts.util.PropertyMessageResourcesFactory

    key

    指定 Resource Bundle 存放在 ServletContext 對(duì)象中時(shí)采用的屬性 key 。默認(rèn)值為由 Globals.MESSAGES_KEY 定義的字符串常量。只允許有一個(gè) Resource Bundle 采用默認(rèn)的屬性 key

    null

    指定 MessageResources 類如何處理未知的消息 key 。如果此項(xiàng)為 true ,將返回空字符串。如果此項(xiàng)為 false ,將返回類似“ ???global.label.missing??? ”的字符串。該屬性為可選項(xiàng),默認(rèn)值為 true

    parameter

    指定 Resource Bundle 的消息資源文件名。

    ?

    許多 Struts 客戶化標(biāo)簽都通過 bundle 屬性來指定 Resource Bundle ,標(biāo)簽的 bundle 屬性和 <message-resources> 元素的 key 屬性匹配。

    ?

    · 10 <plug-in> 元素

    <plug-in> 元素用于配置 Struts 插件。

    <plug-in> 元素的屬性

    屬性

    描述

    className

    指定 Struts 插件類。插件類必需實(shí)現(xiàn) org.apache.struts.action.PlugIn 接口

    ?

    · 11 。配置多應(yīng)用模塊

    Struts 1.1 支持多應(yīng)用模塊,即同一個(gè)應(yīng)用包含多個(gè)子應(yīng)用,每個(gè)子應(yīng)用可以處理相關(guān)的一組功能。

    所有的子應(yīng)用都共享同一個(gè) ActionServlet 實(shí)例,但每個(gè)子應(yīng)用都有單獨(dú)的配置文件。把應(yīng)用劃分成多個(gè)子應(yīng)用模塊包含一下步驟:

    (1) ?????? 為每個(gè)子應(yīng)用傳見單獨(dú)的 Struts 配置文件。

    (2) ?????? web.xml ActionServlet 的配置代碼中添加每個(gè)子應(yīng)用信息。

    (3) ?????? 采用 <forward> 元素或 SwitchAction 類來實(shí)現(xiàn)子應(yīng)用之間的切換

    posted on 2007-02-07 08:23 ???MengChuChen 閱讀(1421) 評(píng)論(0)  編輯  收藏 所屬分類: struts
    主站蜘蛛池模板: 在线精品亚洲一区二区三区| 精品熟女少妇av免费久久| 野花高清在线电影观看免费视频| 亚洲一区影音先锋色资源| 三年片在线观看免费西瓜视频| 亚洲精品无码AV中文字幕电影网站| 色视频在线观看免费| 亚洲国产黄在线观看| fc2成年免费共享视频网站| 精品亚洲一区二区三区在线播放| 新最免费影视大全在线播放| yy6080久久亚洲精品| 插鸡网站在线播放免费观看| 国产亚洲一区二区在线观看| 91香蕉国产线在线观看免费 | 嫖丰满老熟妇AAAA片免费看| 亚洲一区二区影视| 国产美女无遮挡免费网站| 国产亚洲精品美女久久久久久下载| 国产成人免费ā片在线观看| 国产成人精品免费视频大全| 亚洲精品中文字幕乱码三区| 中文字幕在线观看免费视频 | 99视频免费在线观看| 97久久精品亚洲中文字幕无码 | 一级日本高清视频免费观看| 国产精品久久久亚洲| 99无码人妻一区二区三区免费| 亚洲日本人成中文字幕| 日本免费人成黄页网观看视频| 真人无码作爱免费视频| 好看的电影网站亚洲一区| 国产精品永久免费10000| 狠狠综合亚洲综合亚洲色| 久久亚洲欧洲国产综合| 日本免费人成网ww555在线| 亚洲三级在线视频| 国产亚洲视频在线播放| 无码国产精品一区二区免费虚拟VR| 国产精品亚洲色图| 亚洲av无码不卡|