3 回答

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

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