我在讨论是否使用Seam,Wicket,JSF或GWT作为Java项目中表示层的基础。
我根据就业市场考虑因素,技术的新颖性以及其他S.O.的推荐,将我选择的Java Web框架缩小到这个子集。用户。
在决定这些因素时,我应该考虑哪些因素?
答案 0 :(得分:34)
自从2.0规范发布以来,我从版本1.4和JSF开始使用GWT。
GWT是一个客户端框架,它从Java生成JavaScript。您的架构将是纯客户端 - 服务器,这意味着:
JSF是一个基于组件的框架,具有视图优先设计(如果您愿意,可以使用代码隐藏):
恢复:
答案 1 :(得分:18)
我使用的唯一一个是JSF,所以我无法向你提供其他人的反馈,但这是我对JSF的看法。根据我的经验,当我们从JSP中的JSF转换为facelets中的JSF时,生活变得更加容易,因此我将专注于facelets。此外,看起来Seam和JSF并不相互排斥。
优点:
缺点:
我不是JSF / Facelets的专家,所以我确信还有其他人我错过了。希望其他人也会详细说明。
JSF 2.0更新:
答案 2 :(得分:15)
感谢wicket家伙保持清醒并坚持讨论。我是一个wicket用户,我喜欢它。我的主要原因是:
我可以让设计师处理模板和页面,因为我处理java部分
没有什么新东西需要学习。它的“只是java和只是HTML”
我以前的经验是GWT和JSF 1.0
答案 3 :(得分:10)
Seam是一个应用程序框架,而不是一个表示层。它最初的开发是为了减轻JSF的痛苦,但已经演变成更通用的依赖注入框架。
我相信您可以将Seam与JSF,Wicket和GWT结合使用。 JSF的支持是初级和优秀的;我不确定其他两个人的支持程度如何。
由于您的标准的重点似乎是您的技能的适销性,我建议您通过Facelets尝试Seam和JSF。 JSF是一个公认的标准,如果你使用Facelets,它实际上很有用。您可以通过Richfaces和Ajax4jsf获得灵活的AJAX功能。 Seam通过JCP或多或少标准化。
答案 4 :(得分:7)
我的经验是按时间顺序:
原始的servlet - (是的,很多努力工作,但它是早期的,我们是渴望海狸!)
JSP - 我认为它出现的时候就是beez neez(如果我们只知道的话);)
Echo - 非常棒的框架,但不适用于需要搜索引擎友好的页面(相同 GWT的问题)
Wicket - 非常棒的框架 - 开发人员完全理解OO的概念(与JSP和许多其他人不同),并将所有常用的OO细节应用于此框架。如果你欣赏'可重用性',如果你喜欢封装,如果你喜欢分离关注点,如果你想将你的模型绑定到UI代码而不必担心对象编组和其他这样的丑陋,那么这就是你的框架! / p>
答案 5 :(得分:3)
从长远来看,我建议使用Sun规范支持的技术。到目前为止,这已经证明可以选择多个实现(通常也是开源实现),而且行为往往定义得很好。
这将有助于您在维护场景中 - 希望 - 您的代码也会及时结束。编写良好的代码永远存在:)
在这个特殊场景中,我建议使用JSF。我只尝试过1.1的Apache实现,但是在JSP之上是有害的。我们很快就要对它进行修改 - 我希望在facelets上考虑使用JSF。
答案 6 :(得分:1)
我使用了Wicket和GWT非常重要。从未真正学会爱Wicket。
我的自我发表了关于它的博客http://salk31.blogspot.com/2009/07/wicket-ajax.html
今天看看GWT 2.0 uiBinder提醒我,在Wicket中必须将XML组件树与用Java创建的组件树相匹配是多么令人讨厌。 GWT旋转对我来说看起来好多了。
我没有使用Wicket超过一年所以也许他们已经解决了很多这个问题,但鉴于现代浏览器和JS的支持,我无法看到在服务器上做这一切的重点(我知道,我知道数据)局部性)。
答案 7 :(得分:1)
如果你只考虑就业市场,你应该选择JSF。但是,我相信RIA的未来属于GWT和gwt,就像客户端技术一样。
我认为GWT最明显的优势,它比服务器端表示层技术(如JSF,wicket)更具可扩展性。因为,服务器不需要存储客户端状态,客户端CPU功率也被使用。这是一个巨大的好处,你不需要在服务器计算机之间序列化客户端状态以实现容错系统。
答案 8 :(得分:1)
我知道它有点晚了但是在Framewrok上已经有很多比较了,特别是这个,它发生在durinf Devox 2010 conf:
http://www.devoxx.com/display/Devoxx2K10/Comparing+JVM+Web+Frameworks
这可以帮助您选择:)
答案 9 :(得分:1)
我从JSF(1.1和1.2)开始,我决定改变下一个项目真是太痛苦了。我研究了一下,我决定尝试Wicket,这真是一种乐趣。 我也试过JSF 2,但仍然是一样的。
它们都是组件框架,但使用Wicket的东西很容易,而JSF则完全混乱。
Wicket over JSF:
JSF over Wicket:
一个常见的缺陷是会话大小有问题(因为图形组件存储在那里)。
总而言之,如果你只能在Wicket和JSF之间做出决定,那么对我来说毫无疑问, Wicket 。
答案 10 :(得分:-10)
不推荐使用JSF (当福音传播者在2010年比较或讨论Web框架时,JSF甚至没有列为比较框架。)
现在使用GWT,YUI,JQuery等创建大型应用程序。
阅读谷歌及以上的一些文章将是显而易见的。
(JSF上的所有工作都是为了支持遗留应用程序)。