JSF MVC框架中的MVC是什么组件?

问题描述:

在JSF MVC框架中,谁是模型,视图和控制器?JSF MVC框架中的MVC是什么组件?

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

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

中号 - 商务域/服务层(如EJB/JPA/DAO)
V - 您的JSF代码
ç - FacesServlet的

在显影剂图像,建筑V依次迪维dable如下:

中号 - 实体
V - 的Facelets/JSP页
Ç - 管理豆

在较小的客户图像时,显影剂V是反过来可分割如下:

M - JSF组件树
V - 渲染HTML输出
Ç - 客户端(web浏览器)

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

中号 - HTML DOM树
V - Visual presentation
C - Event listener func行动(终端用户互动和阿贾克斯)

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

请注意,有些新手甚至一些—非常基本—教程打成一片/复印/扁平化托管bean中的实体属性,这将有效地使控制器成为模型。不用说,这是糟糕的设计(即不是干净的MVC设计)。

在下面的答案的代码片段演示正确的MVC方法:

+0

+1完全同意这两种哲学,一般情况下大拱门更是如此。实时查看项目。 – 2011-02-24 12:55:54

+2

没有得到双关语,仍然有提升 – 2012-12-05 16:21:42

+1

托管bean是不是模型??? – 2013-06-07 07:43:58

中号奥德尔将是你ManagedBean

V IEW将jspXHTML(当然你可以适应这里各种视图)

Ç ontroller将FacesServlet

更新,希望这张图可以帮到更多

enter image description here

+4

+1被调用,有道理,虽然我可能会说你模型是实体(如果有的话),控制器是Managed Beans(除了FacesServlet) – 2011-02-24 11:48:43

+0

@Jigar,如果'FacesServlet'是一个控制器,我不能扩展它。我不能拥有我自己的控制员......我同意Shervin的观点,即Managed Beans是Controller。 Shervin,如何发布你自己的替代答案? – yegor256 2011-02-24 12:08:19

+1

它是控制的秘密'FacesServlet'。 – 2011-02-24 12:09:07

Faces Servlet进行管理面临的生命周期所以在这个意义上它是控制器用自己的代码合并,可能在每个生命周期阶段

http://www.java-samples.com/images/jsf-lifecycle.gif