clwbeyond

            BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            1 隨筆 :: 0 文章 :: 0 評(píng)論 :: 0 Trackbacks

          2007年5月10日 #

          一、Struts2配置文件
          Struts2相關(guān)的配置文件有web.xml,struts.xml,struts.properties,
          struts-default.xml,velocity.properties,struts-default.vm。其中web.xml,struts.xml是必須的,其它的配置文件可選擇。它們?cè)趙eb應(yīng)用中的功能如下:
          web.xml:包含所有必須的框架組件的web部署描述符。
          Struts.xml:配置包含result/view類(lèi)型、action映射、攔截器等的Struts2的主要配置文件。
          Struts.properties:配置struts2的框架屬性。
          Struts-default.xml:在文件在struts-action-x.x.jar中,該文件是應(yīng)該被包含在struts.xml中的缺省配置。
          Welocity.properties:重寫(xiě)了velocity的配置文件。
          Struts-default.vm:相對(duì)于velocity的缺省配置。

          二、Struts2配置元素
          Struts2核心的配置文件是缺省的struts.xml。
          必要的時(shí)候,缺省的配置文件可以包含其它的配置文件;struts文件可以放入jar中,并自動(dòng)插入應(yīng)用程序,這樣每個(gè)模塊可以包含自己的配置文件并自動(dòng)配置。在Freemarker和Velocity模塊中,模板也能從classpath中加載,所以整個(gè)模塊可以作為一個(gè)簡(jiǎn)單的jar文件被包含。
          Struts.xml配置文件可以包含Interceptor、Action類(lèi)和Results。
          Struts.xml配置元素說(shuō)明:

          1、Packages
          Packages:packages把a(bǔ)ctions、results、results types、interceptors
          和interceptor-stacks組裝到一個(gè)邏輯單元中,從概念上講,packages就像一個(gè)對(duì)象,可以被其它子包從寫(xiě),而且可以擁有自己獨(dú)立的部分。
          Name屬性是packages的必填元素,它作為一個(gè)關(guān)鍵字被后邊的包引用;extends元素是可選的,它允許包擴(kuò)展一個(gè)和多個(gè)前邊定義的包。注意,
          struts.xml文件是至上而下處理的,所有被擴(kuò)展的包,需要在擴(kuò)展包前定義。
          Abstract元素是可選的,它可以申明一個(gè)不包含actions的配置文件。

          2、Namespace
          Namespace元素把a(bǔ)ctions細(xì)分到邏輯模塊,每一個(gè)namespace都有自己的
          前綴(prefix),namespace避免了action之間的名字沖突,當(dāng)前綴出現(xiàn)在URI中時(shí),這些標(biāo)簽都是名字空間感知的(“namespace aware”),所以這些namespace prefix不必嵌入到表單或連接中。
          Default的namespace是一個(gè)空字符串“”,如果在指定的配置文件中,沒(méi)有找到action,缺省的namespace也會(huì)被查找。Local/global策略允許應(yīng)用程序在action “extends”元素層次結(jié)構(gòu)之外,有全局的action配置。缺省的namespace也可以不在package中申明。
          Namespace prefix可以注冊(cè)為java的申明式安全,以確保授權(quán)的用戶(hù)才能訪(fǎng)問(wèn)namespace的資源。
          Root namespace(“/”)也被支持,root就是當(dāng)直接請(qǐng)求context path的時(shí)候的namespace。

          [個(gè)人理解:namespace的用法就像struts1.x中的path一樣,只不過(guò)它在package中什么路徑,而在action中申明action名子罷了]

          3、Include
          Include元素使得框架能應(yīng)用“divide and conquer”來(lái)配置文件。被include
          的每個(gè)配置文件必須和struts.xml有一樣的格式,一個(gè)大的項(xiàng)目可以采用這樣方式來(lái)組織程序模塊。
          Include元素也可以和package交替出現(xiàn),框架將按照順序加載配置文件。

          4、Interceptor configuration
          Interceptor允許應(yīng)用程序在Action方法執(zhí)行前后定義執(zhí)行代碼,
          Interceptor在應(yīng)用程序開(kāi)發(fā)中十分重要,對(duì)于Interceptor有許多用例,如validation, property population, security, logging, 和profiling。
          Interceptor被定義為一個(gè)Java類(lèi),Interceptor也可以組裝成Interceptor-stack,他們將按照定義的順序執(zhí)行。
          在struts-default.xml中定義了一些缺省的Interceptor-stack,以便框架能很好地運(yùn)行。

          5、Action
          Action是框架的“工作單元”。Action可以指定一個(gè)Interceptor-stack、
          一序列的return type和一序列的異常處理,但只有name屬性是必須的。

          posted @ 2007-05-10 18:07 clwbeyond 閱讀(309) | 評(píng)論 (0)編輯 收藏

          主站蜘蛛池模板: 宝兴县| 若羌县| 龙胜| 山西省| 武平县| 克什克腾旗| 阿荣旗| 黄冈市| 奎屯市| 宜春市| 江口县| 大同县| 玉林市| 武威市| 禄劝| 五河县| 吉水县| 都江堰市| 新泰市| 莱芜市| 济南市| 沽源县| 青海省| 德令哈市| 新兴县| 广宁县| 绥芬河市| 灌南县| 南开区| 六盘水市| 长兴县| 山东| 开阳县| 辽源市| 资中县| 乌拉特中旗| 宜良县| 富平县| 深泽县| 泉州市| 安丘市|