Posted on 2006-06-04 18:00
氧氣中毒 閱讀(1484)
評論(0) 編輯 收藏 所屬分類:
Framework
一、
Struts
的與
Web App
的關系
???? struts叫做web framework,其主要基于web層的應用系統開發。按照J2EE Architecture的標準,struts應當和jsp/servlet一樣,存在于web container一層。
二、
Struts
的體系結構
?????? 我們說struts framework是MVC 模式的體現,下面我們就從分別從模型、視圖、控制來看看struts的體系結構(Architecture)。下圖顯示了struts framework的體系結構響應客戶請求時候,各個部分工作的原理。
1、
從視圖角度(
View
)
首先,
Struts
提供了
Java
類
org. apache.struts.action.ActionForm
,
Java
開發者將該類細分來創建表單
bean
。在運行時,該
bean
有兩種用法:
―?
當
JSP
準備相關的
HTML
,表單以進行顯示時,
JSP
將訪問該
bean(
它保存要放入表單中的值
)
。那些值是從業務邏輯或者是從先前的用戶輸入來提供的。
????????? ―?
當從
Web
瀏覽器中返回用戶輸入時,該
bean
將驗證并保存該輸入以供業務邏輯或
(
如果驗證失敗的話
)
后續重新顯示使用。
其次,
Struts
提供了許多定制
JSP
標記,它們的使用簡單,但是它們在隱藏信息方面功能強大。例如,除了
bean
名稱和給定
bean
中每個段的名稱之外,頁面設計者不需要知道有關表單
bean
的更多信息。
2、
從模型角度(
Model
)
Struts
雖然不直接有助于模型開發。
在Struts中,系統
模型
的狀態主要由ActiomForm Bean和值對象體現。
3、
從控制器角度(
Controller
)
???
在Struts framework中, Controller主要是ActionServlet,但是對于業務邏輯的操作則主要由Action、ActionMapping、ActionForward這幾個組件協調完成(也許這幾個組件,應該劃分到模型中的業務邏輯一塊)。其中,Action扮演了真正的控制邏輯的實現者,而ActionMapping和ActionForward則指定了不同業務邏輯或流程的運行方向。
?
三、基本組件包
整個struts大約有15包,近200個類所組成,而且數量還在不斷的擴展。在此我們不能一一介紹,只能列舉幾個主要的簡要的介紹一下。下表說明了目前struts api中基本的幾個組件包,包括action,actions,config,util,taglib,validator。下圖則顯現了這幾個組件包之間的關系。其中action是整個struts framework的核心
org.apache.struts.action
|
基本上,控制整個struts framework的運行的核心類、組件都在這個包中,比如我們上面提到的控制器ActionServlet。已經Action,ActionForm,ActionMapping等等。struts1.1比1.0多了 DynaActionForm 類。增加了動態擴展生成FormBean功能
|
org.apache.struts.actions
|
這個包是主要作用是提供客戶的http請求和業務邏輯處理之間的特定適配器轉換功能,而1.0版本中的部分動態增刪FromBean的類,也在struts1.1中被Action包的DynaActionForm組件所取代
|
org.apache.struts.config
|
提供對配置文件struts-config.xml元素的映射。這也是sturts1.1中新增的功能
|
org.apache.struts.util
|
Strtuts
為了更好支持web application的應用,體統了一個些常用服務的支持,比如Connection Pool和Message Source。詳細信息請參考
http://jakarta.apache.org/struts/api/org/apache/struts/util/package-summary.html
|
org.apache.struts.taglib
|
這不是一個包,而是是一個客戶標簽類的集合。下面包括Bean Tags,HTML Tags,Logic Tags,Nested Tags,Template Tags這幾個用于構建用戶界面的標簽類。
|
org.apache.struts.validator
|
Struts1.1 framework
中增加了validator framework,用于動態的配置from表單的驗證。詳細信息請參閱 http://home.earthlink.net/~dwinterfeldt/
|
?
?