各种Java Web表示层技术的优缺点
我目前正在开发一个大量使用JSF和IceFaces的web应用程序。我们已经讨论过转移到另一个表示层,我想我应该把讨论带到SO中,看看专家们怎么想 我很好奇是否有人能权衡各种Java表示层技术的利弊。如果你只和一个一起工作过,说说你为什么喜欢或讨厌它。如果你和几个人一起工作过,给你一些印象,看看他们是如何相互竞争的 我们正在考虑的技术是:各种Java Web表示层技术的优缺点,java,jakarta-ee,presentation-layer,Java,Jakarta Ee,Presentation Layer,我目前正在开发一个大量使用JSF和IceFaces的web应用程序。我们已经讨论过转移到另一个表示层,我想我应该把讨论带到SO中,看看专家们怎么想 我很好奇是否有人能权衡各种Java表示层技术的利弊。如果你只和一个一起工作过,说说你为什么喜欢或讨厌它。如果你和几个人一起工作过,给你一些印象,看看他们是如何相互竞争的 我们正在考虑的技术是: 冰面 JSF(无冰面) GWT(谷歌网络工具包) 边门 挂毯 如果我在名单上遗漏了什么,请告诉我 谢谢 我在几个小项目中使用了GWT。以下是一些我喜欢的东
- 冰面
- JSF(无冰面)
- GWT(谷歌网络工具包)
- 边门
- 挂毯
谢谢 我在几个小项目中使用了GWT。以下是一些我喜欢的东西:
我想问的最大的问题是为什么要更改表示层?这是一个非常昂贵的成本,我可以看到一种技术的好处比其他技术的好处大得多,就像改变成本一样……我想知道您是否有一个不同于web客户端的服务层,web控制器只是调用它来完成工作 如果您这样做,那么web UI技术的选择可以与后端分离。如果它作为合同优先的web服务公开,您可以让不同的应用程序共享它。只要您的客户端可以发送和接收XML,它们就可以与您的服务交互。想要切换到Flex吗?不用担心-将其指向服务并呈现XML响应。简而言之: =JSF= 优点:
- 组件体系结构李>
- 许多图书馆和工具李>
- 有点好的IDE支持
- 沉重的重量,包括CPU/内存和学习曲线李>
- 当某些东西不能按预期工作时,很难进行调试
- 轻量化李>
- 合理的模板系统李>
- 好的教程李>
- 参考文档没有教程组织得那么好和深入李>
- 开发团队遇到了一些严重的困难,尤其是在成为和孵化项目时。这导致了对框架重要方面的混淆,当时我不得不切换到另一个框架,因为
- 布局和代码的真正分离
- 基于组件,意味着站点元素的高度可重用性;例如,您可以创建带有自动标签和CSS样式的修饰表单,并且只需在组件的构造函数中更改它的DAO对象,就可以在另一个项目中完全重用它
- 对Ajax、Portlet和各种框架的出色支持通常是直接开箱即用的,更重要的是,它不依赖slf4j/log4j以外的任何东西来工作,一切都是可选的李>
- 开发在总体上有些混乱,Wicket泛型现在有点混乱,尽管它们在1.4中被清理了很多
- 一些组件(如
)需要大量的子类化或匿名方法重写,以便轻松注入行为。这部分是由于Wicket强大的基于事件的设计,但不幸的是,这也意味着Wicket很容易弄乱代码Form.onSubmit()
- GWT是基于JavaScript的,这听起来很愚蠢。主要的问题是,它让我太多地想起了JSP:s及其自动生成的类,它们非常可怕
- Tapestry没有将标记和代码正确地分开,这样就很容易在两者之间进行验证,这将在将来导致问题
@Megadix:就像你说的,一开始文档很差,但现在不是了。Wicket的开发人员编写了一本名为《Wicket in Action》的好书。网站上提供的示例代码也是开始学习的好地方请参阅我对Wicket和Tapestry 5的比较:。好问题。我们对IceFaces的不满源于a)来自地狱的神秘肉类例外——JSF生命周期特有的问题;b)这里的许多人认为这是一个沉重而缓慢的问题;c)社区支持不足。我们正在考虑一个新项目的变化,而不是我们现有的应用程序。如果它是为一个新项目。我也很好奇你对冰面的反应,因为我以前也考虑过。