JSF与spring MVC有什么优势?

时间:2012-12-08 19:36:05

标签: jsf spring-mvc

我试图弄清楚除了JSF实现提供的一组不同的UI组件之外,将JSF与spring MVC一起使用有什么优势?两者都是MVC,两者都有不同的透视导航处理(两者都很容易理解)。假设我在我的应用程序中使用JSF和Spring MVC,那么设计,实现和维护会带来哪些好处?

3 个答案:

答案 0 :(得分:8)

它们都是MVC,但JSF是面向组件的,而Spring MVC是基于动作的。

您可以最好地查找这些术语对您自己的意义,但简而言之,JSF允许UI由高级可视构建块(滑块,面板,进度条等)组合。

Spring MVC并没有对实际用户界面说太多。它强调一个控制器,您可以将其映射到URL路径及其参数。在处理之后,你直接/转发到呈现视图的东西(通常是JSP,但最近经常使用Thymeleaf)。

JSF是Java EE的一部分,它还带有一个框架,该框架具有Spring MVC的“类到URL”绑定方面的某些功能; JAX-RS。 JAX-RS本身既不是MVC也不是基于请求的Web框架,但它是一个Web服务框架。

在一个应用程序中使用两个不同的Web框架非常混乱,我不推荐这个。

答案 1 :(得分:2)

等等男人!!!

MVC是一种架构模式,它在以下之间创建概念划分(在应用程序架构中):

  • 模型:提供访问应用程序使用的数据的方法
  • 查看:处理模型中包含的数据的显示,并管理与用户和代理的交互
  • 控制器:从用户接收命令(通常通过视图)并实现更改其他两个组件的状态

此方案除其他外,还暗示了应用程序逻辑(在此上下文中通常称为“业务逻辑”),控制器和模型之间的传统分离,以及加载视图的用户界面

因此MVC是一种架构模式,与特定语言或特定技术无关。 Spring MVC是一个实现这种模式的Java框架!!!

好的,对于视图,我们可以使用不同的技术,包括JSF(Java Server Faces),它们为您提供了一些预先制作的组件(由特定的View框架实现),您必须直接在视图中使用标记库进行声明。

现在有许多免费的View框架派生自JSF,如PrimeFaces和IceFaces。

JSP及其派生的所有框架本身都支持从程序员隐藏AJAX,因此开发人员不必担心它

我建议您查看PrimeFaces组件展示,向您解释此视图技术的所有功能:

http://www.primefaces.org/showcase/ui/home.jsf

例如,您可以在不了解它的情况下处理AJAX FORM,尤其是在不知道或不使用Javascript的情况下。

这是您可以在展示中找到的最简单的AJAX表单示例:http://www.primefaces.org/showcase/ui/pprUpdate.jsf

使用这种视图技术,您可以在表单,菜单和许多其他内容中使用许多组件

主要优点是不必使用代替组件编写单行JavaScript

答案 2 :(得分:1)

我不会重复其他答案中的定义。 JSF(及其组件套件)可以帮助您更快地构建应用程序,因为您的工作只是将所有内容粘合一次,只关注业务规则(或为应用程序增加价值)并通过组合组件来构建UI。您没有主要针对Javascript测试您的组件或音乐会。

在Spring MVC中,你开始很慢,但它有很多自由来实现你想要的任何东西,而不是依赖于组件(大多数只是与JSF通信的Javascript UI),甚至可以毫不费力地实现Web服务。但是你必须测试,测试和测试这样的UI构造。

如果您正在寻找混合动力车,那么Spring Web Flow可能会有所帮助。有了它,你可以使用JSF组件和Spring MVC控制器的一个很好的抽象层,甚至你仍然可以使用它们。