一個Struts 2框架的基本設計目標是把MVC(模型 - 視圖 - 控制器)設計模式到Web應用程序的開發。 MVC模式使關注點分離,並且允許易於維護的乾淨鬆散耦合的代碼。 MVC模式由3個不同的部分組成。模型,視圖和控制器。讓我們看看這三個元素是如何在Struts 2中實現的。 控制器(StrutsPrepareAndExecuteFilter) - 控制器是處理各種請求協調的組件。在Web應用程序中,不同的用戶請求需要由不同的應用程序組件提供,並由Controller組件進行此決定。在Struts 2中,對Web應用程序的每個請求都首先到達前端控制器類 - StrutsPrepareAndExecuteFilter。這將檢查傳入的請求,然後將請求路由到配置爲處理請求的相應類(在Struts中稱爲Action類)。
模型(動作) - 模型是負責執行應用程序業務功能的組件。它是應用程序的核心。它代表應用程序的狀態,幷包含業務邏輯和業務數據。在Struts 2中,動作類充當應用程序模型的入口。這些類負責處理每個用戶請求,然後將業務邏輯委託給由應用程序開發人員編寫的其他類。 針對不同的用戶請求擁有不同的操作類別,可確保我們擁有乾淨的代碼,可以輕鬆維護。但是,不同的用戶請求(如應用程序日誌記錄)所需的功能呢?對於這樣的橫切問題,Struts 2有一個稱爲攔截器的不同組件。
查看(結果) - 在MVC架構中查看是負責演示(用戶界面)的組件。 View組件使用Model組件來獲取數據並顯示它。 Struts 2支持多種技術,例如JSP,Velocity模板,FreeMarker,用於View組件的XSLT。在Struts 2術語中,View被視爲結果。動作類(Model)確定應該向用戶呈現什麼Result(View)。
用戶通過訪問瀏覽器中的應用程序URL來訪問Struts 2應用程序的功能。請求總是來自StrutsPrepareAndExecuteFilter控制器(因爲它是在所有Struts 2應用程序的web.xml中配置的)。 StrutsPrepareAndExecuteFilter查找Action類以在struts.xml文件中調用。或者,它可以使用慣例來猜測它。然後調用Action類的execute()方法,然後調用業務邏輯類。 動作類可以指定要使用註釋顯示的視圖,也可以在struts.xml文件中指定它。無論哪種方式,Struts 2都知道要調用哪個View(Result)來顯示數據給用戶。這裏需要注意的另一件重要事情是,Action類中的對象可用於View組件。因此,操作不僅決定顯示哪個視圖(結果),而且還提供視圖所需的數據。
valueStack(它是objectStack和contextMap的組合)OGNL用於存儲動作和其他對象。您可以使用OGNL來訪問對象堆棧和上下文映射。
OGNL
綁定元件到模態的目的和從一種類型轉換值與模態對象另一個 綁定通用代碼。 動態創建列表和地圖,與GUI方法一起使用 調用方法。你可以調用任何方法,而不僅僅是getter和setter。
下來選民請讓我知道這裏有什麼問題,以便我可以做出適當的修改。 – 2012-08-15 00:03:15
我假設,因爲(一)它不回答這個問題,(二)需要很多的話纔不回答。然而,一年之後,我終於明白了這個問題,因爲我隨即獲得了一個贊成票。 – 2013-11-09 12:44:02