Struts快速入門(二) (轉)

amyz發表於2007-08-14
Struts快速入門(二) (轉)[@more@]

M語義 :namespace prefix = o ns = "urn:schemas--com::office" />

我們從關鍵的Struts抽象概念開始,這是它MVC架構的核心。Struts使用Service to Worker實現了MVC模式。[Core]

控制器

控制器被Action類所實現。它提供一箇中心位置來處理全部的終端請求。這就為處理檢視和導航管理的控制層提供了更為清晰的劃分,把模型訪問和操作留給專門的請求。全部提交的請求被對映到中心處理器,其說明如下:

action

org..struts.action.ActionServlet

全部的請求URI以*.do的模式存在並對映到這個servlet,其配置如下:

action

*.do

一個該模式的請求URI符合如下格式:

 

上述的對映叫做擴充套件對映,你也可以宣告路徑對映,使用/*結尾的模式,如下所示:

action

/do/*

一個該模式的請求URI符合如下格式:

如上描述的資源邏輯對映允許在配置中修改資源對映而不需修改任何應用程式碼。該對映方案也被用於Mulitplexed Re Mapping。控制器為所有的表示層請求提供了一個集中的訪問點。控制器區分每一個提交的請求到RequestProcessor,其輪流傳送請求到相關的表單bean進行表單驗證,然後發到一個請求處理器以訪問模型。這個控制器提供的抽象概念減輕了開發者建立公共應用系統服務的困難,如管理檢視、會話及表單資料。開發者支援一個通用機制如錯誤及異常處理,導航,國際化,資料驗證,資料轉換等。

在Struts 1.1中,控制器需要在init()方法中讀取配置。該配置控制了架構的行為,含有URI到請求處理器的對映如使用ActionMapping配置物件,設定資訊資源,提供透過訪問外部資源等等。事實上,提交請求的處理實際發生在ActionServlet委託所有的輸入請求到RequestProcessor的過程中。

傳送者物件

  RequestProcessor功能是作為傳送者,按例項化(或複用)一個請求處理器和一個相應的表單bean來處理請求。表單bean和請求處理器中錯誤的建立或異常的丟擲被RequestProcessor處理,並影響RequestProcessor的檢視管理功能。表單bean輔助RequestProcessor儲存表單資料和/或準備檢視必須的中間模型資料。RequestProcessor使用宣告struts-config.xml檔案,如下所示,例如特定請求的請求處理器。

type="packageName.EditCustomerProfileAction"

name="customerProfileForm"

pe="request"/>

type="packageName.customerProfileForm"/>

  全部提交的請求都被控制器委託到RequestProcessor的物件傳送者。RequestProcessor檢查請求URI找到動作標示符,並使用ActionMapping物件中的資訊建立一個請求處理器例項,然後requesthandler.execute(…)方法。請求處理器中execute(…)方法任務是和應用模型互相作用。請求處理器根據結果返回以一個ActionForward配置物件到RequestProcessor。RequestProcessor將用ActionForward物件來透過RequestDispatcher.forward(…)或response.sendRedirect(…)來呼叫下一個檢視。

 

 


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752019/viewspace-956527/,如需轉載,請註明出處,否則將追究法律責任。