基于Java的Web框架替代方案

10

我正在尝试选择一个基于Java的Web框架来开始一个新项目,但我现在有点难以决定。我一直在使用普通的GWT,我不得不说它非常好,架构、API和文档都很出色,但是我缺乏应用CSS并美化我的小部件的知识,所以我需要一个自带这些功能的框架。Gwt Ext因为不纯粹基于GWT而被排除,Ext Gwt不错,但他们完全脱离了GWT并重新实现了所有内容(数据存储、事件等),而且还有许可证问题。我发现Vaadin似乎相当不错,除了改善了GWT的弱点(在我看来),即一切都是客户端预渲染的(整个网站都在客户端,即使您的客户未经过身份验证)。唯一关于Vaadin的问题是我没有看到广泛使用,也许是最近的缘故,所以我无法得到很多意见。

任何提出的解决方案都不必基于GWT,只是它在集成JS和JAVA方面做得非常好,抽象出了我作为Java开发者需要学习的所有JS知识,以便开发Web应用程序。

因此,基本上:Java开发者需要了解不同的基于Java的Web框架。要求:无需深入了解CSS或JS即可使用(当然,基本知识始终是必要的,但我不想太过涉及内部),已包括美观、可接受的小部件、能够使用Java开发工具/技术(Eclipse、Netbeans等)。

正如您所看到的,GWT几乎符合我的所有要求,并且这是我的首选,但现在我希望获得更多关于其他选择的反馈意见。提前感谢,teto。


3
请修改标题。您的标题太模糊了,与您具体的问题不符,这让人感到很烦。请将标题更改为与您实际问题相匹配的内容,比如“GWT的替代方案”或“帮我解决CSS问题”等。 - S.Lott
4
你说得有道理,但在对新手刻薄之前,请给他们一些宽容的余地。 - Jason S
我支持 @S.Lott,请修改问题的标题。 - Tyagi Akhilesh
10个回答

5

嗯,

我认为你应该真正投入时间学习CSS。没有CSS的网页只会引发问题。大多数Web框架需要一些HTML和CSS来完成最终的呈现。它们可能会将它们抽象化,但是如果不了解底层技术,当您需要在UI中添加特殊内容时,您总是会遇到困难。

想象一下在Swing中编写UI而不想学习LayoutManager的概念。

David


3

Grails是一种类似于Rails的JVM框架,如果您不介意的话。


1
Groovy是Java的一种变体。在Grails中,你可以将它们互换使用。 - Simon

3

3
如果你喜欢组件化方法,请看一下Apache Wicket。关于第三方JavaScript库,您可以使用任何想要的JS库。Wicket核心只是为Ajax等使用自己的自定义JS。查看wicketstuff以获取许多准备好的流行JS库和Wicket之间的集成。其中一些比其他人不成熟,但好的可以给你启示如何完成所需的任务。另一个选择:Wicket ExtJS Integration Module
个人而言,我更喜欢Stripes,这是一个基于操作的框架,它提倡“约定优于配置”。同样,Stripes并不强制使用任何特定的JS库,因此只需使用您想要的即可。但是,您可能需要阅读[Stripes-users] Suggestions for a good widget framework for STRIPES
最后,Grails可能是小丑候选人。它具有AJAX支持(您可以使用YUI,prototype,dojo),jQuery插件等。您可能需要阅读Which Grails Rich Client Plugin is the Best?以获取更多输入。

2

Stripes 是一个很好的 JSP 风格框架。

然而,如果你正在开发更多的是“应用程序”而不是“网站”,我强烈建议使用纯 HTML 和 ExtJS。然后,你可以通过类似 DWR 的工具将其连接回来,几乎不需要编写任何 Web 代码。


Ext JS是由制作Ext Gwt和Gwt Ext的同一团队开发的,它们都采用相同的许可模式,所以对我来说这是不可行的。无论如何,感谢您的回答并指出DWR,这是我的另一个工具。 - teto
公平地说,Ext-GWT和GWT-Ext是对ExtJS的扩展。我要说的是,对于商业产品来说,Ext许可证的价格确实物超所值。 - Kevin
是的,由于Ext-GWT是纯Java编写的,这是一个很大的优点。我同意您的观点,许可证也是可以接受的,但决定权不在我手中,所以对我来说它不是一个可行的选择。 - teto
作为技术专业人员,向您的上级传达正确的选择是您的工作 :) - Kevin

1

Sproutcore或EXTJS是替代方案,但坚持使用GWT可能是一个不错的选择


0
你可以看一下RIFE。我不确定它是否具有你想要的小部件支持,但它在其他方面符合要求。

0

虽然不是基于Java的,但Flex是一项创建丰富互联网应用程序和快速创建gui的有趣和引人注目的技术。 它还可以通过数据服务提供程序(如BlazeDS)与Java后端轻松通信。

Flex应用程序最终编译为.swf(Flash)文件,并在浏览器中使用Flash插件运行。 这可能并不是您想要的,但我只是为您提供信息。

我使用过的大多数基于Java的Web框架,在组件化框架中更改组件外观时,都归结为css,甚至在MVC基础的Web框架中更是如此。


0

Seam框架是许多商业Web应用程序中使用的现代框架。Spring Webflow是另一个不错的选择。

个人来说,我会考虑使用Grails。它比传统的Java框架更轻量和动态,有着一个非常活跃的社区和强大的插件生态系统。显然它使用Groovy,但我相信你会发现学习它很愉快!我可以自信地说,使用Grails你将能够在更短的时间内制作出高质量的Web应用程序。


0
首先感谢所有抽出时间回答的人,我已经仔细考虑了每个框架/解决方案所提供的内容后,选择坚持使用纯GWT,并在需要时采用CSS样式,学习CSS永远不会太晚。我的大部分代码库已经运行良好,而且由于我有期限要满足,这似乎是对我来说最合乎逻辑的选择。Grails和Groovy绝对值得一看,也许在我的下一个项目中,我会从头开始使用它们。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接