3 回答
TA贡献1784条经验 获得超2个赞
这取决于观点(双关语)。
在总体架构图中,您自己的JSF代码是V:
M-业务域/服务层(例如EJB/JPA/DAO)
V-JSF代码
C-FacesServlet
在开发人员的图片中,V如下所示:
M-实体
V-Facelets/JSP页面
C-管理豆
在较小的客户端图片中,开发人员V如下所示:
M-JSF组件树
V-呈现HTML输出
C-客户(网页浏览器)
在更小的JavaScript图片中,客户机V如下所示:
M-HTML DOM树
V-视觉表现
C-事件侦听器函数(终端用户交互和Ajax)
所以它基本上是一个M(MVC)C)C;)
请注意,一些初学者,甚至一些非常基本的教程混合/复制/扁平了托管bean中实体的属性,这将有效地使控制器成为一个模型。不用说,这是糟糕的设计(即不是一个干净的MVC设计)。
以下答案中的代码片段说明了正确的MVC方法:
为实体创建主详细信息页,如何链接它们以及选择哪个bean范围
将JSF 2托管的POJO bean传递到ejb或将所需的内容放入传输对象中。
过滤器不初始化EntityManager
javax.persistence.TransactionRequiredException在小面片中的应用
TA贡献1853条经验 获得超18个赞
模型
-它是带有@ManagedBean注释的托管bean类,它具有保存数据的属性以及相应的getter和setter。托管bean类也可以包含业务逻辑,这些类也称为支持bean,它可以具有不同的作用域,如请求、会话、应用程序。 视点
-向客户端显示的用户界面,即.xhtml文件。它从托管bean中获取数据,并将其呈现为响应。 控制器
-javax.servlet.webapp.FacesServlet是一个集中式控制器类,基本上是一个servlet。向JSF发出的任何请求首先都会传递给FacesServlet控制器。与我们编写自己的控制器类的JSP不同,在JSF中,控制器servlet是框架的一个固定部分,我们不编写它。
添加回答
举报