java困惑:与经典MVC控制器相比,JSF2中bean的角色
我有一个与设计和架构更相关的问题。我来自一个典型的基于MVC的背景,不得不在JSF2上下功夫。我阅读了IBM关于JSF2(http://www.ibm.com/developerworks/library/j-jsf1/)的文章,认为我理解了整个概念
我开始通过ROO与JSF2取得联系。我觉得ROO(可能对任何JSF2类型的应用都是如此,也可能不是)对bean的使用非常奇怪/不清楚。一般来说,我真的不清楚Bean的实际角色是什么!例如,如果我有一个用于编辑单个用户条目的表单视图,我将在中初始化用户,让我们调用它UserBean(可能存储在成员变量中),并通过getter访问该变量。如果我现在想概述所有用户,我将再次在UserBean中呈现视图,保存一个用户集合,并再次通过getter访问该集合。前面的描述实际上是我使用jsf的方式。这意味着我将更多地使用UserBean作为一个状态完整服务作为控制器
在典型的控制器情况下,我会为每种类型的操作(列表用户、编辑用户、查看用户等)创建一个单独的控制器,带有特定的初始化数据,这样我就可以通过控制器分离逻辑的上下文
我经常使用特定于上下文的服务,例如,如果我在应用程序中处理用户的服务,我会创建一个用户服务来处理用户特定的逻辑,该逻辑可能非常复杂,难以放入应用程序本身。例如,如果我现在查看roo生成的Bean,我会发现通过编程呈现表单的方法、输入字段、标签、再次存储用户列表的方法、指示数据是否已加载的布尔字段、单用户成员以及许多看起来更像要放入UserService(或其他)的方法。我想知道这是否是JSF2的使用方式,换句话说:将与一个上下文相关的所有内容都推到on bean中,而不是使用服务和编写处理所有内容的“超级控制器bean”
我真的不知道你是否答对了问题,但也许对我有帮助的是,给我一个提示
- 这是一个非常典型和值得称赞的示例应用程序,它使用bean的方式与jsf2特性和用例结合使用,例如围绕给定类型的实体实现基本CRUD用例。(一个让人困惑的问题是,在我的例子中,ROO总是使用AJAX和javascript的东西,比如模态对话框来实现CRUD逻辑。我想知道JSF是否有更经典的方法来实现这一点?[使用“经典”我指的是基于URL的视图和用于列出、编辑和查看实体的分离视图])
- 一个启发典型的“好人就是这样做的”JSF模式的资源(也许这就是J2EE模式?)李>
非常感谢你
如果我不清楚,请随意推动我具体化具体点
# 1 楼答案
您在JSF1上发布的JSF2链接。第二条。如果您想从JSF2或JSF开始,我建议您使用以下链接
我建议从简单的JSF开始,而不是从JSF的ROO开始,来了解JSF
回答你的问题
希望这有帮助