【问题标题】:What is the best view layer for Spring 3?Spring 3 的最佳视图层是什么?
【发布时间】:2011-01-24 02:06:23
【问题描述】:

我正在研究在我们的新项目中与 spring 一起使用的表示层。我来自 PHP+Prado,想转向像 Prado 这样简单且比 PHP 更强大的东西。

我喜欢 Spring 3 和 Spring MVC。学习和开始使用它非常简单。但我正在寻找比简单 jsp 更好的“视图框架”。我需要简单的组件,如支持数据网格、列表、树的拖放。我已经创建了 SpringMVC+Spring Web Flow 2 + Spring Faces + JSF 配置,但是在那里创建简单的东西非常复杂。我需要一些更简单的东西。

你有什么想法吗?

【问题讨论】:

  • 对于那些感兴趣的人 - 获胜者是 Vaadin
  • 我知道这是一篇旧帖子,但您能详细说明为什么它胜过其他帖子吗?
  • 它之所以获胜,主要是因为不需要 HTML 和 CSS 知识,并且您可以像在 Swing 中一样用 Java 构建丰富的、类似桌面的界面。它完美地满足了我们的需求。
  • 完美。谢谢回答。 :-)
  • Vaadin 网站需要修复,目前有很多服务器错误。

标签: java spring jsp jsf spring-mvc


【解决方案1】:

在 Java EE 中,目前只有两种视图技术:JSP 和Facelets。 JSP 已经过时了,即将退休。 Facelets 更新更好,并且在设计时考虑到了 JSF,因此它们可以顺利地相互配合。

但 Spring MVC 和 JSF 实际上是竞争对手。他们都有大致相同的目标和目的。您应该使用其中一种,不要混淆它们。在一个页面中混合两个或多个 MVC 框架不会完美地工作。但是,您可以将 Spring 作为 DI 和/或 Security 框架与 JSF 作为 MVC 框架结合使用。 Spring 提供的不仅仅是 MVC。

basic JSF Component implementation 中并非所有组件都支持,如 Datagrids、Lists、Trees 拖放。为此,您需要一个组件库,例如 PrimeFaces

另见

【讨论】:

  • 是否可以在没有所有 Spring Web Flow 魔法的情况下创建一个前面有 Facelets 和 Spring 行为的应用程序?
  • 我不做 Spring,所以无法详细回答可靠性问题。
  • 决定是:JSF over Spring 3 没有 Spring MVC 和 Spring Web Flow。现在的问题是:RichfAces 或 Icefaces 或 ...
【解决方案2】:

过去 3 年我一直在使用 Jboss Seam + Richfaces,发现它们都很有用,但如果我是你,我也会查看 Play Framework。它具有Spring support 并与jQuery UIExtJS 结合使用,您将获得一个非常简单但高效的环境。从速度的角度来看,这肯定让人想起用 PHP 进行开发。

【讨论】:

    【解决方案3】:

    如果您想要那些丰富的控件,那么某种 JSF 框架就是您的最佳选择。不过,标准的 JSF 框架设计得相当糟糕且不够优雅。

    您应该看看JBoss Seam 作为替代方案。它是一个使用 EJB3 和 JSF 的自上而下的 Web 框架,而且它的集成度非常好,使得 JSF 比其他方式更容易。

    不过,它不是基于 Spring 的,所以如果您的心意是 Spring,那么您需要查看其他 JSF 实现,例如 RichFaces

    Spring WebFlow 对你来说可能根本不需要,所以除非你有充分的理由,否则我会忽略它。

    【讨论】:

    • 我已经完成了基于 Jboss Seam 的大型应用程序。这是一个伟大的、强大的框架——没错。但是这次我需要一些更简单的东西,没有整个 EJB 容器等......但我同意 JBoss Seam 现在看起来是最好的企业框架。
    • Vanilla JSF 只是不附带某种 CSS 皮肤。它所做的只是渲染纯 HTML,您还必须自己使用 CSS 设置样式。这并没有让它变得丑陋。
    • @BalusC:我指的是框架意义上的丑陋,而不是外观意义上的丑陋。
    • 啊,是的,现在说得通了。 Seam 在这个观点上确实很棒。
    【解决方案4】:

    Jboss Seam 提供您想要的一切。它适用于 Spring,但它本身提供了许多内置功能。

    【讨论】:

    • JBoss Seam 使用 JSF 作为视图层
    • 我猜它不再相关了!来自 Seam 网站,“Seam 3 的积极开发已被 Red Hat 停止。许多项目已转移到 Apache DeltaSpike,其他项目已被吸收到不同的项目中。”
    【解决方案5】:

    一个非常强大且轻量级的基于MVC动作的框架是Stripes,试试吧!

    【讨论】:

    • 我看起来更像 RichFaces
    • 好吧,这是一个完全不同的故事。 Stripes(如 Spring MVC)是基于动作的,而 JSF 是基于组件的。如果您使用 JSF,还可以考虑从 Spring 切换到 JBoss Seam/Weld。如果您选择基于动作的框架,imo Stripes 是最好的。如果你更喜欢基于组件的框架,我特别喜欢 Primefaces (primefaces.org) 和 Openfaces (openfaces.org/#1) 库。
    • 如果您打算使用 JSF,还可以考虑从 Spring 切换到 JBoss Seam / Weld,因为它们具有更紧密的集成。
    【解决方案6】:

    Angular 或 GWT 也可以是适当使用的替代方案。

    【讨论】:

      【解决方案7】:

      由于您来自 PHP,JSP 可能是比 JSF 更合适的视图技术

      如果必须使用 Spring,请使用 Spring 4(不是 3)

      检查 Spring Boot 以获得更快速的开发等。

      如果您正在开发 Web 应用程序,并且 SEO 并不重要,我个人会使用 Javascript 框架 + Restful Web 服务进入单页根目录。我注意到您提到了 Spring WebFlow + Components。我的意见是这些太重了

      如果 SEO 很重要,请查看带有 SSP(Scala 服务器页面)的 Play Framework(我更喜欢 Scala 版本)。

      【讨论】:

        猜你喜欢
        • 2013-10-04
        • 1970-01-01
        • 1970-01-01
        • 2011-06-05
        • 2011-11-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多