我正在考虑是否使用 Seam、Wicket、JSF 还是 GWT 作为 Java 项目中表示层的基础。
根据就业市场的考虑、技术的新颖性以及其他 S.O. 的建议,我将 Java Web 框架的选择范围缩小到了这个子集。用户。
在做出决定时我应该考虑哪些因素?
我从 1.4 版本开始就使用 GWT,从 2.0 规范发布以来我就使用 JSF。
GWT 是一个客户端框架,它从 Java 生成 JavaScript。您的架构将是纯粹的客户端-服务器,这意味着:
- 最好使用粗粒度服务
- 所有传输到客户端的对象都应该是完全可序列化的(这意味着没有延迟加载或 OpenSessionInView 模式)
- 从 GWT 2.0 开始,您可以使用 xhtml 设计 gui,这在样式化和构建 HTML 方面要容易得多
- GWT 倾向于支持好的架构,如果你搞砸了它就会bad重构
-
Perfect历史记录(浏览器后退按钮、可添加书签的 URL)支持hard,你可能必须自己动手,尽管很容易直接破解某些东西
JSF 是一个基于组件的框架,采用视图优先设计(如果您愿意,可以使用代码隐藏):
- 做某种类型的网络应用程序(有状态的,比如购物车)更容易
- JSF+Seam 支持对话(想想类似向导的页面,在多个页面之间维护状态)
- You can实现 OpenSessionInView,具体取决于您的堆栈。如果您将 EJB 用于服务/业务层,可能不推荐
- JSF2 has superb support for AJAX, and with a component suite like RichFaces you can build nice webapps
- 但如果你想要精致的 javascript 行为,你就必须编写一些 javascript
- JSF 跟踪客户端或服务器端的当前 UI 状态。这是网络流量或服务器内存之间的权衡。
Resume:
-
GWT更适合网络应用(想想 gmail)需要最好的客户端性能。编写自定义组件(您编写 Java)很容易,并且由于您的服务器端只是一个服务层,因此您可以在服务器端完全无状态。
-
JSF更适合大多数 CRUD 应用程序,这些应用程序更适合面向组件的东西:想想酒店/航班预订系统、带有购物车的在线商店等
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)