JSF MVC 框架中的 MVC 有哪些组件?

在 JSF MVC 框架中,谁是模型、视图和控制器?


答案 1

这取决于观点(双关语)。

在大的体系结构图景中,你自己的 JSF 代码是 V

M - 业务域/服务层(例如 EJB/JPA/DAO)
V - 您的 JSF 代码
C - FacesServlet

在开发人员图片中,架构 V 又可以划分,如下所示:

M - 实体
V - Facelets/JSP 页面
C - 受管 Bean

在较小的客户端图片中,开发人员 V 依次可划分如下:

M - JSF 组件树
V - 呈现的 HTML 输出
C - 客户端(Web 浏览器)

在更小的JavaScript图片中,客户端V反过来是可分割的,如下所示:

M - HTML DOM 树
V - 可视化演示
C - 事件侦听器函数(最终用户交互和 Ajax)

所以它基本上是一个M(M(M(MVC)C)C)C;)

请注意,一些初学者,甚至一些非常基本的教程在托管 Bean 中混合/复制/展平实体的属性,这将有效地使控制器成为模型。毋庸置疑,这是糟糕的设计(即不是干净的MVC设计)。

以下答案中的代码片段说明了正确的 MVC 方法:

《Java EE 8 中的 JSF 权威指南》一书中,在第 8 章“支持 Bean”,第 276 页中,下面的 Venn 图用于说明在与 JSF 开发人员相关的上下文中 MVC 范例中支持 Bean 的位置。版权免责声明:书籍由我撰写,图片由我创作。

enter image description here


答案 2

M odel将是你的ManagedBean

V iew将是,(好吧,你可以在这里容纳各种景色)jspXHTML

C ontroller 将是FacesServlet

更新,希望这张照片能帮助更多

enter image description here


推荐