Model view controller 在JSF2托管bean中实现MVC的最佳实践
随着我所从事的web项目的复杂性增加,包含MVC结构的需求变得越来越迫切。我的模型类定义得很好,但视图和控制器代码往往被混在一起。我在网站上也使用了大量AJAX(主要是RichFaces JSF函数),这使得事情稍微复杂一些 有没有人找到使用JSF2实现MVC的好策略?我不想在项目中引入另一个框架(例如SpringMVC) 到目前为止,我还没有开始做一些想法Model view controller 在JSF2托管bean中实现MVC的最佳实践,model-view-controller,jsf,jakarta-ee,jsf-2,separation-of-concerns,Model View Controller,Jsf,Jakarta Ee,Jsf 2,Separation Of Concerns,随着我所从事的web项目的复杂性增加,包含MVC结构的需求变得越来越迫切。我的模型类定义得很好,但视图和控制器代码往往被混在一起。我在网站上也使用了大量AJAX(主要是RichFaces JSF函数),这使得事情稍微复杂一些 有没有人找到使用JSF2实现MVC的好策略?我不想在项目中引入另一个框架(例如SpringMVC) 到目前为止,我还没有开始做一些想法 对于使用大量ajax的页面,有一个“视图”bean,用于记住所选选项卡、所选项目、提供过滤后的数据列表等 有一个“控制器”bean来处理
- 对于使用大量ajax的页面,有一个“视图”bean,用于记住所选选项卡、所选项目、提供过滤后的数据列表等
- 有一个“控制器”bean来处理诸如模型更改之类的操作
- 在JSF页面和控制器之间有“command”bean。jsf函数用参数填充命令bean,并调用
使命令bean调用控制器bean上的正确方法来执行操作。“command”bean可能包含一些在完成时调用的javascript。它还可以指定要重新呈现的页面区域command.execute()
m_selectedDate
,其唯一目的是在调用updateFilteredItemsBasedOnDate()
时将所选日期提供给后端。如果额外的变量可以消失就好了,因为它们只是暂时的。JSF2的EL和参数应该会有所帮助,但我很好奇是否有其他解决方案可用
我很好奇,是否有一种方法可以将MVC应用于托管bean,或者某种分离关注点的方法,这样我们就不会得到试图做所有事情的大型bean。您在寻找设计模式吗?如果您正在寻找MVC,那么BalusC答案就足够了,否则请检查此项
还可以查看您必须了解更好的bean管理方法,而不是研究如何更好地在JSF中使用MVC。因为JSF本身与MVC一起提供了更好的实现。我不知道你在这里的确切意思是什么,作为实现MVC的更好的方法 正如Balusc在评论中所说的,JSF本身就有足够的MVC用于您的应用程序。可能是,如果您想分离关注点,最好将业务逻辑分离到Helper类中,并且只在bean中编写表示逻辑 关于是将bean用于业务逻辑,还是应该将其与托管bean分开,存在争议。这一切都取决于您的应用程序和特定领域 谢谢,
奎师那,也许你需要的是一个分层的架构。到目前为止,MVC架构还存在更多的问题。 例如,您可以在视图、业务逻辑和数据访问层中分层您的架构,在每一层中实现大多数公共设计和企业模式 您已经从其中一个实现MVC开始了,但是,考虑“关注点分离”是一个很好的实践吗 通过这种方式,您可以实现组织良好且解耦的代码 我希望这个简短的解释是有用的
尊敬。我不明白“如何使用JSF实现MVC?”。JSF本身已经是一个MVC(2)框架。托管bean是M,facelets页面是V,内置的FacesServlet是C。你的问题不是更像是“我如何在JSF中设计托管bean?”吗?很好。我更新了问题标题并添加了一些评论。