Model、View、およびControllerであるJSF MVCフレームワークでは?
これは視点に依存します(意図的)。
大きなアーキテクチャの図では、独自のJSFコードは[〜#〜] v [〜#〜]です。
[〜#〜] m [〜#〜]-ビジネスドメイン/サービス層(EJB/JPA/DAOなど)
[〜#〜] v [〜#〜]-JSFコード
[〜#〜] c [〜#〜]-FacesServlet
開発者の写真では、アーキテクチャ[〜#〜] v [〜#〜]は次のように分割可能です。
[〜#〜] m [〜#〜]-エンティティ
[〜#〜] v [〜#〜]-Facelets/JSPページ
[〜#〜] c [〜#〜]-マネージドBean
小さいクライアントの図では、開発者[〜#〜] v [〜#〜]は次のように分割可能です。
[〜#〜] m [〜#〜]-JSFコンポーネントツリー
[〜#〜] v [〜#〜]-レンダリングされたHTML出力
[〜#〜] c [〜#〜]-クライアント(webbrowser)
さらに小さいJavaScript画像では、クライアント[〜#〜] v [〜#〜]は次のように分割可能です。
[〜#〜] m [〜#〜]-HTML DOMツリー
[〜#〜] v [〜#〜]-視覚的なプレゼンテーション
[〜#〜] c [〜#〜]-イベントリスナー関数(エンドユーザーインタラクションとAjax)
したがって、基本的にはM(M(M(MV(C)C)C)Cです;)
一部のスターターや、非常に基本的なチュートリアルでさえ、マネージドBeanのエンティティのプロパティを混合/コピー/フラット化することに注意してください。これにより、コントローラーがモデルになります。言うまでもなく、これは貧弱なデザインです(つまり、クリーンなMVCデザインではありません)。
次の回答のコードスニペットは、適切なMVCアプローチを示しています。
本の中で Java EE 8 のJSFの決定的なガイド、第8章「バッキングBean」、276ページで、以下のベン図を使用して位置を説明します。 JSF開発者に関連するコンテキスト内でのMVCパラダイムのバッキングBeanの著作権に関する免責事項:本は私が執筆し、写真は私が作成します。
[〜#〜] m [〜#〜] odelはManagedBean
になります
[〜#〜] v [〜#〜] iewはjsp
、XHTML
になります(さまざまなビューに対応できます)
[〜#〜] c [〜#〜] ontrollerはFacesServlet
になります
更新、この写真がもっと役立つことを願って
Facesサーブレットは、facesのライフサイクルを管理するため、その意味では、各ライフサイクルフェーズで呼び出される可能性のある独自のコードと組み合わされたコントローラです。