Starting Struts2--Core Components(1)

          Posted on 2007-08-03 16:57 puras 閱讀(1579) 評論(0)  編輯  收藏 所屬分類: Struts2.0
          從一個高度層次來看,Strtsu2屬性pull-MVC(或是MVC2)框架;這與傳統(tǒng)的MVC框架略有不同,因為action的角色采用模型,而不是控制器,雖然這樣有一些重疊."pull"來自于視圖從action拉數(shù)據(jù),而不是持有一個分開的可用模型對象.

          我們知道在概念方面意味著什么,但在執(zhí)行層面意味著什么?這個模型-視圖-控制器模式在Struts2中被實現(xiàn)成了五個核心部分--actions,攔截器,值棧/OGNL,結果類型和結果/視圖技術.

          圖1:The MVC / Struts2 Architecture

          圖1描述了從Struts2高度層面上的結構, 包含了模型,視圖和控制器.控制器是一個實現(xiàn)了Struts2里分派Servlet過濾器以及攔截器,模型實現(xiàn)的actions,視圖則是由結果類型和結果的組成.值棧和ONGL提供了一個通用的路線,鏈接和集成其他組件.

          我們在這章討論一些通用的部分,將會有很多信息涉及到配置.配置WEB應用,配置actions,攔截器,結果等等.記住,這些說明只是為了提供如果完成的背景,或許不是最有效的配置應用的方式.在后面的章節(jié)我們將討論更加容易和更有效的方式以完成同樣的目標,使用約定俗成的配置,注釋和零配置插件.

          在我們進入詳細講解核心構成之前我們先來討論一下全局的配置.

          Configuration

          在配置Struts2之前,你需要先下載發(fā)行版或是在你的Maven2的"pom.xml"文件中配置它的依賴關系:
          <dependency>
              
          <groupId>org.apache.struts</groupId>
              
          <artifactId>struts2-core</artifactId>
              
          <version>2.0.6</version>
          </dependency>

          做完之后,Struts2應用的配置就可以分成三個獨立的文件,如圖2中所示.

          Figure 2: Configuration file scope for framework elements

          需要在你的"web.xml"文件里為WEB應用的配置FilterDispatcher Servlet過濾器:
           1 <filter>
           2     <filter-name>action2</filter-name>
           3     <filter-class>
           4         org.apache.struts2.dispatcher.FilterDispatcher
           5     </filter-class>
           6 </filter>
           7 <filter-mapping>
           8     <filter-name>action2</filter-name>
           9     <url-pattern>/*</url-pattern>
          10 </filter-mapping>
          11 

          它配置了基本的WEB應用.剩下來的事就是使用"struts.properties"配置文件來自定義WEB應用的執(zhí)行環(huán)境,通過"struts.xml"配置文件來配置WEB應用的構件.我們現(xiàn)在來看看這兩個配置文件的詳細描述.

          The struts.properties File

          這個配置文件提供了一個改變框架默認行為的機制.一般情況下,你是不需要修改這個文件的,一個例外是你想配置一個對于開發(fā)者友好的調試環(huán)境.所有的包含在"struts.properties"配置文件中的配置項,都可以使用"init-param"標簽配置在"web.xml"文件中,同樣也可以使用"constant"標簽配置在"struts.xml"配置文件中.

          Properties允許修改如改變Freemarker選項,替換action的映射類,決定是否重新加載XML配置文件,默認使用的用戶界面主題等等.更多的關于properties的最新信息,請查閱位于
          在開發(fā)環(huán)境中,這有一些配置項你可能需要更改:
          • struts.i18n.reload = true -- 能夠重新加載國際化文件
          • struts.devMode = true -- 能夠在開發(fā)模式下提供更全面的調試
          • struts.configuration.xml.reload = true 能夠重新加載XML配置文件(適用于action),修改之后可以在Servlet容器里重新加載整個WEB應用
          • struts.url.http.prot = 8080 -- 設置服務運行的端口(以便生成正確的URL)
          The struts.xml File

          "struts.xml"文件包含配置信息,你將修改它用于發(fā)布action,我們將在本章剩余的部分詳細的講解指定的元素.現(xiàn)在,讓我們看看不會改變的結構.

          注:
          根據(jù)你應用的功能,可能會從你的應用中移除"struts.xml"文件.配置上我們將在本章討論一種替換的方法,使用注釋,"web.xml"啟動參數(shù),和交替的URL映射配置.
          唯一的配置仍然需要"struts.xml"文件,如全局結果,異常處理,和自定義的攔截器棧.

          這是一個XML文件,所以第一個元素是XML的版本和編碼信息.下一個則是XML的文檔類型定義(DTD).DTD提供了一些文件里的元素的結構,并最終用XML來解析和編輯.
           1 <?xml version="1.0" encoding="UTF-8" ?>
           2 <!DOCTYPE struts PUBLIC
           3     "-//Apache Software Foundation//DTD Struts Configuration
           4     2.0//EN"
           5     "http://struts.apache.org/dtds/struts-2.0.dtd">
           6 <struts>
           7     <package
           8         name="struts2"
           9         extends="struts-default"
          10         namespace="/struts2">
          11         …
          12     </package>
          13 </struts>

          我們現(xiàn)在到達了<struts>標簽.這是Struts2具體配置的最外層標簽.所有其他的標簽都將被包含在這個當中.

          The Include Tag:

          <include ... />標簽用于將Struts2應用模塊化時引入其他配置文件時使用并且它始終是<struts>標簽的子標簽.它僅僅包含一個"file"屬性,用于提供被引入的文件的名稱,那個文件必須與"struts.xml"配置文件的結構相同.例如,如果你想拆分一個計費應用的配置文件,你可以選擇按組將繳費,管理和報表配置到單獨的文件中:
          1 <struts>
          2     <include file="billing-config.xml" />
          3     <include file="admin-config.xml" />
          4     <include file="reports-config.xml" />
          5     …
          6 </struts>

          引入文件時,順序是重要的.來自引入文件的信息將在文件中引入標簽的位置開始有效.因此,使用一個配置在另一個文件中的標簽,這個引入的配置必須出現(xiàn)在被引用之前.

          有一些文件你是必須明確的引入,還有一些文件是自動引入的.比如說"struts-default"和"struts-plugin.xml".兩者都包含了默認的結果類型,攔截器,攔截器棧,包,以及WEB應用執(zhí)行環(huán)境的配置信息(也可以配置在"struts.properties"文件中)的配置.區(qū)別在于"struts-default.xml"文件提供的是Struts2的核心配置,而"struts-plugin.xml"提供的是詳細插件的配置.每個插件JAR文件中都應包含一個"struts-plugin.xml"文件,所有這些都將在啟動的時候加載.

          上一章:
          Starting Struts2--Where Struts2 fits into the Web Paradigm
          下一章:Starting Struts2--Core Components(2)

          posts - 47, comments - 124, trackbacks - 0, articles - 0

          Copyright © puras

          主站蜘蛛池模板: 逊克县| 温州市| 精河县| 迁安市| 石家庄市| 旬邑县| 营口市| 信阳市| 和田县| 拉孜县| 麻阳| 民勤县| 晋中市| 平谷区| 子洲县| 绥宁县| 确山县| 遂溪县| 孝昌县| 佳木斯市| 科尔| 临泽县| 漳平市| 永仁县| 吴川市| 绥棱县| 南溪县| 连云港市| 伊吾县| 赣州市| 涿鹿县| 菏泽市| 社会| 诸暨市| 高清| 黎川县| 麻城市| 梧州市| 綦江县| 洛扎县| 垫江县|