2

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

4

3 回答 3

8

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

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

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

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

在一个应用程序中使用两个不同的 Web 框架非常令人困惑,我不推荐这样做。

于 2012-12-08T20:10:09.690 回答
2

等人!!!

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

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

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

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

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

现在有许多从 JSF 派生的免费 View 框架,例如 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 来代替组件

于 2012-12-08T20:32:46.817 回答
1

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

在 Spring MVC 中,您起步缓慢,但它提供了很大的自由来实现您想要的任何东西,而不是依赖于组件(主要是与 JSF 通信的 Javascript UI),甚至可以毫不费力地实现 Web 服务。但是您将不得不测试、测试和测试这样的 UI 结构。

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

于 2012-12-08T21:56:13.280 回答