现在选择一个Java Web框架?

我们正在将一个基于自定义开发的mvc框架构建的大型网站迁移到一个基于java的web框架,该框架提供了对ajax,富媒体内容,混搭,基于模板的布局,验证,最大html / java代码分离。 Grails看起来不错,但是,我们不想使用脚本语言。 我们想继续使用java。 基于模板的布局是一个主要关注点,因为我们打算将这个Web应用程序与具有相似功能但外观和感觉完全不同的多个网站一起使用。

基于门户的解决方案是否适合这个问题?

有关使用“Spring Roo”或“Play”的任何见解将非常有帮助。

我确实找到过类似的帖子,但已经有一年多了。 同时,事情肯定会发生改变!

编辑1:感谢伟大的答案! 这个网站正在成为壕沟程序员信息的最佳单一来源。 不过,我期待使用portal-cms二重奏的更多信息。 Jahia看货。 任何类似的东西?


基于门户的解决方案是否适合这个问题?

就我个人而言,我会远离大型门户解决方案(他们通常是生产力的杀手)。 虽然我已经听说了有关Gatein的好消息,但我没有任何真正的体验。

有关使用“Spring Roo”或“Play”的任何见解将非常有帮助。

关于Spring Roo,我已经阅读过Spring Roo Vs(Wicket and Spring)等在Internet上的其他答案,但我仍然不确定(也许我不明白),但我不确定它的成熟度,更重要的是,我非常想知道SpringSource在Grails和Roo上做了什么(不,Grails vs Roo - 为什么SpringSource推出两种非常相似的技术?并不能说服他们两个都能存活)。

我不能说太多关于游戏。 我已经看过每个人都喜欢的演示,但我想阅读真实生活中的反馈。 在此之前,我会等。

我确实找到类似的帖子(...)。 同时,事情肯定会发生改变!

是和不是:)但让我们进入演示文稿框架地狱:你的问题没有单一的答案(如一年前),那里有十几个框架,没有明确的赢家。 仅举几个例子:

  • JSF:很多关于这个基于组件的框架的怀疑者,包括我,所以我不是最好的人谈论它,但...
  • JSF 2(+ CDI /焊接):JSF怀疑者被Gavin King鼓励“再看一次”。 事实上,我认为JSF 2是一个很大的改进,尤其是在CDI方面,但是......它还是很新的(理解,它缺乏反馈)。 如果您想拥抱Java EE 6,请查看它。
  • Wicket:另一个基于组件的框架越来越受到关注。 我听到的主要是好东西:比JSF简单,设计好,可测试性高,HTML设计器友好等。您可能会喜欢它。
  • 挂毯:不要(请看你为什么停止使用Tapestry?)
  • Struts 2,Spring MVC,Stripes:基于Action的框架。 所有体面的,并将涵盖您的需求 (我个人喜欢Stripes和它的约定配置方法,请参阅Stripes与Struts2来了解它)。
  • GWT,Flex,Grails:这些不是你想要的。 我无法真正谈论Flex和GWT的(最新版本),但我知道Grails确实有一些粉丝。
  • 实际上,我建议看看Matt Raible的演讲,他在比较web框架,展示他们的长处和弱点,收集事实和数字,展示趋势方面做得非常出色......我建议:

  • 比较JSF,Spring MVC,Stripes,Struts 2,Tapestry和Wicket(还没有过时)
  • 未来的Web框架:Flex,GWT,Rails和Grails(只是为了体验其他选择)
  • 比较Kick-Ass Web框架(这是最新的)
  • 真的,看看这些演示文稿,他们会帮助你找到一个合适的框架(没有独特的答案,但你可以通过消除限制选择),并可能改变你的观点。


    我一直在使用Spring 3和Jquery一段时间,但听说过Play并给它一个镜头。 我非常喜欢它,Play非常适合PHP和像Spring这样的重型Java框架。

    我最喜欢玩的东西是:

  • 非常容易地获得一个播放应用程序,你必须在编码和配置方面相当出色,才能在Spring上获得一个简单的Crud应用程序(尽管Spring 3使它变得更容易)。
  • Spring Security非常棒,但它的代价是复杂性。 Play的安全模块非常简单,覆盖了大概90%的应用需求。
  • 您可以更改代码并在浏览器中进行刷新,以便像使用PHP一样查看更改,而不必使用基于Servlet的框架执行整个重新部署。
  • 错误消息很好地显示,大部分时间都不那么神秘。 玩仍然需要处理他们的错误处理
  • Play有一个插件机制,非常简单。
  • 对象持久性非常好,因为内存数据库和JPA随框架一起提供,因此不需要配置外部对象持久性工具。 从内存数据库转到实际的RDBMS是配置文件中的一行更改。
  • MVC设置完成得非常好。 您扩展以创建您的域对象的Model类与JPA实体管理器集成。 他们不只是POJO的。
  • 将URL映射到控制器是简单而灵活的,并且全部位于一个“路由”文件中。
  • 每当你创建一个项目时,Play会处理所有的jar依赖项,并且Play有一个工具可以用eclipse-ify(或者你喜欢的任何IDE)来直接导入到你喜欢的IDE中。
  • 我不喜欢Play的东西

  • 文档并不是那么完美,许多未记录的功能仍然存在。
  • 该框架是服务器,因此您必须为每个应用程序分配一个端口。 我认为有人正在研究一个虚拟主机插件,但我还没有看到它的行动。
  • 它很年轻,这个项目非常棒,技术很棒,但它确实需要更多的开发人员。 我很乐意为它奉献一些时间,我们会看到的。

  • 我最喜欢的是Wicket。 标记和java代码的清晰分离。 非常容易编写和使用组件。 易于使用的Ajax,可测试性。 您可以直接调试到您的页面/组件,并且不会从JSF实现中获取神秘的错误消息;)

    在性能方面,还有一个很好的比较门票JSF

    链接地址: http://www.djcxy.com/p/44057.html

    上一篇: Choosing a Java Web Framework now?

    下一篇: Java based web framework alternatives