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

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

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

    隨筆-9  評(píng)論-168  文章-266  trackbacks-0

    Struts配置文件

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

     

    ·1org.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.ModuleConfigStruts框架中扮演了十分重要的角色。它是整個(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ì)象。ModuleConfigStruts配置文件的根元素<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í)例的存放范圍,可選值包括requestsession,此項(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 Beanrequestsession范圍內(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的存在范圍,可選值為requestsession。默認(rèn)值為session

    type

    指定Action類的完整類名

    unknown

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

    validate

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

     

    提示:<action>元素的forwardincludetype屬性相互排斥,也就是說只能設(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。如果在ActionJSP網(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ù):PragmaCache-ControlExpires,防止頁面被存儲(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 BundleResource 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.xmlActionServlet的配置代碼中添加每個(gè)子應(yīng)用信息。

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

                                            ------------http://blog.csdn.net/ayace/archive/2005/04/10/342472.aspx

    posted on 2007-11-19 17:36 紫蝶∏飛揚(yáng)↗ 閱讀(990) 評(píng)論(0)  編輯  收藏 所屬分類: Struts1/2
    主站蜘蛛池模板: 中文字幕亚洲码在线| 亚洲香蕉免费有线视频| 亚洲产国偷V产偷V自拍色戒| 亚洲国产综合精品中文第一区 | 成人免费777777| 免费午夜爽爽爽WWW视频十八禁| 国产成人麻豆亚洲综合无码精品 | 亚洲国产成人久久三区| 亚洲人成网站18禁止| 一级成人毛片免费观看| 99久久精品免费视频| 色吊丝最新永久免费观看网站 | 亚洲无线观看国产精品| 亚洲精品美女在线观看| 亚洲AV无码成人精品区狼人影院| 一个人看的www免费在线视频| 一级毛片免费观看| 午夜免费福利在线观看| 久久久久久a亚洲欧洲aⅴ| 亚洲中文字幕久久无码| 美女无遮挡拍拍拍免费视频| 国产成人yy免费视频| 亚洲AV网站在线观看| 亚洲一区二区成人| 国产午夜亚洲精品不卡电影| 久久精品无码精品免费专区| 国产精品嫩草影院免费| 色拍自拍亚洲综合图区| 立即播放免费毛片一级| 91久久青青草原线免费| 亚洲国产精品一区二区第一页免| 亚洲视频一区在线播放| 又粗又长又爽又长黄免费视频| www.免费在线观看| 久久久久亚洲AV成人网人人软件| 亚洲一区二区三区高清视频| 中文日本免费高清| 国产高清视频在线免费观看| 亚洲视频在线免费播放| 久久成人18免费网站| 日韩午夜免费视频|