由于我正在开发的Web项目的复杂性增加,因此需要包含MVC结构变得更加紧迫。我的模型类定义良好,但视图和控制器代码趋于一致。我一直在网站上使用相当沉重的AJAX(RichFaces jsFunctions主要),这使事情稍微复杂一些。在JSF2托管bean中实现MVC的最佳实践
有没有人发现使用JSF2实现MVC的好策略?我不想为项目引入另一个框架(例如Spring MVC)。
一些想法到目前为止,我还没有开始做还
- 对于重AJAX页面,有记忆所选选项卡,选择项目,提供数据的过滤列表中的“查看”豆, etc ...
- 有一个'控制器'bean来处理动作,例如对模型的更改
- 具有在JSF页面和控制器之间的'命令'bean。 jsFunction使用参数填充命令bean,调用
command.execute()
将导致命令bean调用控制器bean上的正确方法来执行操作。 “命令”bean可能包含一些JavaScript,可在完成时调用。它也可以指定要重新渲染的页面区域。
有什么想法?
编辑
我看到的漂亮往往管理的bean,往往会尽一切:跟踪用户的选择的,更新模型,得到过滤列表等......
我们目前正在使用JSF 1.2,所以我们不能使用带有参数的actions/actionlisteners。因此,例如,我们的托管bean包含变量,例如m_selectedDate
,其唯一用途是将所选日期反馈到updateFilteredItemsBasedOnDate()
的后端。如果额外的变量可能会消失,那将是很好的,因为它们只是暂时的。带有参数的JSF 2的EL应该有所帮助,但我很好奇是否有可用的替代解决方案。
我很好奇,如果有一种方法可以将MVC应用到托管的bean,或者一些分离问题的方法,以便我们不会结束尝试做所有事情的大型bean。
我没有看到“我如何使用JSF进行MVC?”。 JSF本身已经是一个MVC(2)框架。托管的bean是M,facelets页面是V,内建'FacesServlet'是C.不是你的问题,而是“我如何设计JSF中的托管bean?”。 – BalusC 2010-11-19 21:27:17
好点。我更新了问题标题并添加了一些评论。 – 2010-11-19 21:44:38
还有其他想法吗? – 2010-12-06 23:48:41