4

由于我正在开发的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。

+0

我没有看到“我如何使用JSF进行MVC?”。 JSF本身已经是一个MVC(2)框架。托管的bean是M,facelets页面是V,内建'FacesServlet'是C.不是你的问题,而是“我如何设计JSF中的托管bean?”。 – BalusC 2010-11-19 21:27:17

+0

好点。我更新了问题标题并添加了一些评论。 – 2010-11-19 21:44:38

+0

还有其他想法吗? – 2010-12-06 23:48:41

回答

0

你必须看到管理豆的更好的方式,而考虑如何更好地运用JSF中的MVC。因为JSF自带MVC更好的实现。我不确定你在这里意味着什么是实现MVC的更好方式。

正如Balusc在评论中告诉的那样,JSF本身具有足够的MVC供您的应用程序使用。可能是如果你想分离问题,最好将业务逻辑分成Helper类并只写入bean中的表示逻辑。

关于是否将bean用于业务逻辑还是应将其与管理bean分开,存在争议。这完全取决于您的应用程序和特定领域。

感谢, 克里希纳

1

好吧,也许你需要的是一个分层架构。到目前为止,MVC架构还存在更多顾虑。例如,您可以在View,Business Logic和DataAccess层中构建分层结构,实现每个层中的大多数公共设计和企业模式。

您h've开始实施MVC他们丝毫之一,但是,是一个很好的做法采取计数“的关注点分离”

通过这种方式,你可以实现一个良好的组织和解耦代码。

我跳过这个简短的解释很有用。

问候。