各种Java Web表示层技术的优点和缺点

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (56)

我目前正在研究一个大量使用JSF和IceFaces的Web应用程序。我们已经讨论过转移到另一个表示层,我想我会把讨论放到SO中,看看专家们的想法。

我很好奇,如果有人能够权衡各种Java表示层技术的优缺点。如果你只与一个人合作,说出你为什么喜欢它或讨厌它。如果你已经和几个人一起工作,请给他们看看他们如何相互对抗。

我们正在考虑的技术是:

  • IceFaces
  • JSF (without IceFaces)
  • GWT (Google Web Toolkit)
  • Wicket
  • Tapestry

如果我错过了列表中的任何内容,请告诉我。

提问于
用户回答回答于

我的观点非常偏向于Wicket,因为我已经使用它一段时间,因为我已经使用了很多次了。

Wicket PROs:

  • 布局和代码的真正分离。
  • 基于组件的意思是站点元素的高重用性; 例如,您可以使用自动标记和CSS样式以及所有内容创建经过优化的表单,只需在组件的构造函数中更改其DAO对象,就可以在另一个项目中完全重用。
  • 对Ajax,Portlet和各种框架的支持通常都是直接支持的,更重要的是它不依赖于其他任何东西而不是slf4j / log4j来工作,一切都是可选的!

Wicket CONs:

  • 虽然在1.4版本中已经清理了很多东西,但是Wicket的泛型现在有些混乱了
  • 某些组件(如Form.onSubmit())需要大量的子类或匿名方法来轻松地覆盖注入行为。这部分归功于Wicket强大的基于事件的设计,但不幸的是,这也意味着很容易让代码与Wicket混淆。

Random CONs :(也就是说,我没有用过,但这些是我的观点和/或我听过的东西)

  • GWT是基于JavaScript的,这听起来很愚蠢。主要的问题是它让我想起了太多的JSP:和它自动生成的类,这些类很可怕。
  • Tapestry并没有将标记和代码正确分开,这两种方式在两者之间很容易验证,这会在未来造成问题。
用户回答回答于

我已经使用GWT做了几个小型项目。以下是我喜欢的一些事情:

  1. 这是默认情况下的ajax,所以我不必它做ajax,它只是随着使用GWT。
  2. 它有很好的客户端和服务器端代码的分离。
  3. 我可以使用junit单元测试我的客户端代码
  4. 它可以让你构建清脆,快速的应用程序,很大程度上是因为它是ajax。

我不喜欢的东西:

  1. 有些东西不能按预期工作。例如,我已经看到点击事件没有按预期触发的情况,所以我必须做一个解决方法。
  2. 自动部署到在Eclipse中运行的tomcat有时会停止工作,我永远不知道为什么。

扫码关注云+社区