JSF是否支持MVVM设计模式?

Sub*_*shi 2 jsf design-patterns jsf-2

我现在在我的一个应用程序中使用ZK Framework.ZK Framework支持MVC以及MVVM设计模式.现在我想用一个新项目来使用JSF.JSF是支持设计模式还是仅支持MVC?

小智 5

不,MVF设计模式不受jsf仅支持MVC支持.它仅用于桌面应用程序.JSF也称为MVC fremework.

来自http://blog.oio.de/2011/12/05/jsf-and-mvvm/:

MVVM中的第一个M代表Model,它与我们在MVC方法中使用的模型完全相同.实际上MVVM并没有取代MVC,我宁愿把它视为MVC的附加组件,所以这里没有什么新东西.

MVVM中的第一个V代表View,而且这个部分没有什么新东西.它是负责客户端表示的组件.所以我们的观点不会有任何显着的变化,因为我们将继续使用Facelets定义它们.

MVVM中的VM代表我们的客户端模型ViewModel.ViewModel绑定到Model,但它仅在客户端存在,尽管您可以随时在服务器端使用Model同步它.但更重要的是,您可以在客户端执行任何操作,而无需将回调发送到服务器.

首先,我们需要一个支持MVVM概念的下一代JSF实现.在将请求的视图传递给客户端之前,ViewModel将由尚未实现的JSF实现创建.我们的ViewModel将从构成Model的一个或多个JSF Managed Beans创建.我可以想到一组很好的类和字段级注释来告诉JSF我们模型的哪些部分应该组成客户端的ViewModel.一旦将视图传递给客户端,ViewModel将在提交表单时由客户端脚本操纵.然后,在请求处理生命周期的下一次迭代中,JSF必须处理ViewModel和Model之间的重新同步.不可否认,这可能是最棘手的部分,但我相信下一代JSF Impl会设法做到这一点;-)

了解JSF作为MVC框架:

节点M,V和C是最大连通图,意味着每个部分可以与每个其他部分通信.例如,如果模型更改,它可以将此更改推送到视图.如果桌面应用程序中存在多个视图表示,则尤其可见.更改一个,并实时查看其他更新.

由于Web应用程序的客户端/服务器和请求/响应性质,经典MVC不会将1:1映射到大多数Web框架.

更多信息,请访问:http://www.tutorialspoint.com/jsf/jsf_architecture.htm

  • 在未来的答案中,你从外部来源处理完整的文本块而不是使用你自己的单词,你应该把它们放在引用块中,否则你可能[被指控剽窃](http://meta.stackexchange.com/questions/ 160077 /香港专业教育学院,被被告-的抄袭,什么-DO-I-DO). (2认同)