Luc*_*uke 54 java model-view-controller jsf java-ee
我正在阅读JSF,我觉得为什么JSF是一个MVC框架(或者至少哪个部分属于哪个"字母")我感到很困惑.
我看了一下这个问题:JSF MVC框架中哪些组件是MVC?
我在那里阅读如果你不在聚合视图中查看模型是你的实体,视图是你的XHTML代码而控制器是托管bean.嗯......好的,但视图通常不依赖于执行进一步的业务逻辑调用,这些调用返回一组实体,例如,描述是否仍然适合?
我读过的一本书将其描述为托管bean,是Faces Servlet(Controller)用于调用业务层(Model)的某种"消息"bringer,然后XHTML代码就是视图.
有太多的解释和差异,所以我不知道哪个或如何理解它.
Arj*_*jms 102
在JSF和许多其他Web框架中,它通常不完全清楚的部分原因是MVC模式最初是为桌面应用程序设计的.
在桌面应用程序中,节点M,V和C是最大连接图,这意味着每个部分可以与每个其他部分通信.例如,如果模型更改,它可以将此更改推送到视图.如果桌面应用程序中存在多个视图表示,则尤其可见.更改一个,并实时查看其他更新.
由于Web应用程序的客户端/服务器和请求/响应性质,经典MVC不会将1:1映射到大多数Web框架.
具体来说,在JSF中,映射如下:
UIComponent分别由JSF 和Facelets 实现.FacesServlet).特别是最后一部分经常不太清楚:在JSF中你没有实现一个控制器.因此,支持bean或任何其他类型的托管bean 不是控制器.
第一部分(模型)也并不总是清楚地理解.业务逻辑可以由EJB和JPA实现,但是从JSF的角度来看,值绑定引用的所有内容都是模型.这也是JSF生命周期阶段之一的名称来自:Update Model.在此阶段,JSF将UI组件中的数据推送到模型中.从这个意义上讲,(JSF)托管bean就是模型.
虽然JSF本身没有明确定义这个概念,但是有一种经常重复使用的托管bean称为支持bean.
对于JSF,支持bean仍然是模型,但实际上它是位于模型,视图和控制器中间的管道元素.因为它执行一些可能被视为某些控制器任务的任务,所以这通常被误认为是控制器.但是,如前所述,这是不正确的.它还可以执行一些模型任务,偶尔也可以执行一些视图逻辑.
也可以看看:
它以极简主义的形式出现:
JSF使您能够控制您的请求/响应.您创建模型/视图的方式并不直接连接到框架MVC概念.这只是一个选择问题.MVC概念与代码组织有关.
类似地,Struts是一个MVC框架,但它主要用作控制器.
我想我会帮助你更好地澄清你的想法.
关于托管bean思想的有趣之处在于它既可以用作模型(MVC模式),也可以用作控制器(中介控制器MVC模式,也称为模型视图适配器),其中模型和视图不相互作用直.
在后一种情况下,路由机制不是控制器,因为业务逻辑包含在托管bean中,而Model完全是域模型.然后我们有:
模型 - 包含域模型,在大多数情况下代表数据库中的表,通过DAO持久化.
View - 连接到bean的ui组件;
Controller - 包含业务逻辑并处理视图和模型之间通信的托管bean.
我认为有些人将中介控制器MVC混淆为普通的MVC,这会导致遇到不同的解释.
| 归档时间: |
|
| 查看次数: |
54011 次 |
| 最近记录: |