我目前正在开发一个大量使用 JSF 和 IceFaces 的网络应用程序。我们已经就转移到另一个表示层进行了一些讨论,我想我应该将讨论带到 SO 中,看看专家们的想法。
我很好奇是否有人可以权衡各种 Java 表示层技术的优缺点。如果你只和一个人合作过,请说出你喜欢它或讨厌它的原因。如果您曾与几个人合作过,请给出您对他们如何相互比较的印象。
我们正在考虑的技术是:
- 冰面
- JSF(没有 IceFaces)
- GWT(谷歌网络工具包)
- wicket
- 挂毯
如果我的列表中遗漏了任何内容,请告诉我。
谢谢!
最佳答案
我的观点非常偏向于 Wicket,因为在被 JSP 地雷绊倒太多次之后,我已经使用了一段时间。
Wicket PRO:
- 布局和代码的真正分离。
- 基于组件,这意味着站点元素的高度可重用性;例如,您可以创建带有自动标签和 CSS 样式以及所有内容的美化表单,只需在组件的构造函数中更改它的 DAO 对象,它就可以在另一个项目中完全重用。
- 对 Ajax、Portlet 和各种框架的出色支持通常直接开箱即用,更重要的是它不依赖于 slf4j/log4j 以外的任何东西来工作,一切都是可选的!
wicket 缺点:
- 总体上开发有些困惑,Wicket 泛型现在有点乱,尽管它们在 1.4 中已经清理了很多
- 一些组件(如
Form.onSubmit()
)需要广泛的子类化或匿名方法重写以便轻松注入(inject)行为。这部分是由于 Wicket 强大的基于事件的设计,但不幸的是,这也意味着很容易使代码与 Wicket 混淆。
随机缺点:(也就是说,我没有用过,但这些是我的意见和/或我听说过的事情)
- GWT 是基于 JavaScript 的,这对我来说听起来很愚蠢。主要问题是它让我想起太多 JSP:s 及其自动生成的类,这太糟糕了。
- Tapestry 没有以一种可以在两者之间轻松验证的方式正确分离标记和代码,这会在将来导致问题。
关于java - 各种 Java Web 表示层技术的优缺点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/538550/