随着我正在处理的 Web 项目的复杂性增加,包含 MVC 结构的需求变得更加紧迫。我的模型类定义明确,但视图和控制器代码往往会混在一起。我也一直在网站上使用相当繁重的 AJAX(主要是 RichFaces jsFunctions),这使事情变得稍微复杂一些。
有没有人找到使用 JSF2 实现 MVC 的好策略?我不想在项目中引入另一个框架(例如 Spring MVC)。
到目前为止的一些想法,我还没有开始做
- 对于带有大量 ajax 的页面,有一个“视图”bean 用于记住选定的选项卡、选定的项目、提供过滤的数据列表等......
- 有一个“控制器”bean 来处理模型更改等操作
- 在 JSF 页面和控制器之间有“命令”bean。jsFunction 使用参数填充命令 bean,调用
command.execute()
会导致命令 bean 调用控制器 bean 上的正确方法以执行操作。'command' bean 可能包含一些要在完成时调用的 javascript。它还可以指定要重新呈现的页面区域。
有什么想法吗?
编辑
我经常看到的是托管 bean,它们倾向于做所有事情:跟踪用户的选择、更新模型、获取过滤列表等......
我们目前使用的是 JSF 1.2,所以我们不能使用带有参数的动作/动作监听器。例如,我们的托管 bean 包含变量,例如m_selectedDate
其唯一目的是在调用updateFilteredItemsBasedOnDate()
. 如果额外的变量可以消失就好了,因为它们只是暂时的。JSF 2 的带参数的 EL 应该会有所帮助,但我很好奇是否有可用的替代解决方案。
我很好奇是否有一种方法可以将 MVC 应用于托管 bean,或者某种分离关注点的方法,这样我们就不会得到试图做所有事情的大型 bean。