3 回答

TA貢獻1784條經驗 獲得超2個贊
這取決于觀點(雙關語)。
在總體架構圖中,您自己的JSF代碼是V:
M-業(yè)務域/服務層(例如EJB/JPA/DAO)
V-JSF代碼
C-FacesServlet
在開發(fā)人員的圖片中,V如下所示:
M-實體
V-Facelets/JSP頁面
C-管理豆
在較小的客戶端圖片中,開發(fā)人員V如下所示:
M-JSF組件樹
V-呈現(xiàn)HTML輸出
C-客戶(網頁瀏覽器)
在更小的JavaScript圖片中,客戶機V如下所示:
M-HTML DOM樹
V-視覺表現(xiàn)
C-事件偵聽器函數(shù)(終端用戶交互和Ajax)
所以它基本上是一個M(MVC)C)C;)
請注意,一些初學者,甚至一些非?;镜慕坛袒旌?復制/扁平了托管bean中實體的屬性,這將有效地使控制器成為一個模型。不用說,這是糟糕的設計(即不是一個干凈的MVC設計)。
以下答案中的代碼片段說明了正確的MVC方法:
為實體創(chuàng)建主詳細信息頁,如何鏈接它們以及選擇哪個bean范圍
將JSF 2托管的POJO bean傳遞到ejb或將所需的內容放入傳輸對象中。
過濾器不初始化EntityManager
javax.persistence.TransactionRequiredException在小面片中的應用

TA貢獻1853條經驗 獲得超18個贊
模型
-它是帶有@ManagedBean注釋的托管bean類,它具有保存數(shù)據的屬性以及相應的getter和setter。托管bean類也可以包含業(yè)務邏輯,這些類也稱為支持bean,它可以具有不同的作用域,如請求、會話、應用程序。 視點
-向客戶端顯示的用戶界面,即.xhtml文件。它從托管bean中獲取數(shù)據,并將其呈現(xiàn)為響應。 控制器
-javax.servlet.webapp.FacesServlet是一個集中式控制器類,基本上是一個servlet。向JSF發(fā)出的任何請求首先都會傳遞給FacesServlet控制器。與我們編寫自己的控制器類的JSP不同,在JSF中,控制器servlet是框架的一個固定部分,我們不編寫它。
添加回答
舉報