我想在不使用JavaScript的情况下制作“Web 2.0”应用程序

问题描述 投票:4回答:10

我是一名大约4年的全职Java开发人员,专业。我是GWT狂热分子。我喜欢Java。问题出在这里:在我的空闲时间里,我经常成为我最喜欢的“重型”开发工具的冗长的牺牲品。我也经常陷入痴迷于设计我的软件的陷阱。我将最终得到最美丽的未完成的实现。

所以,这就是我通常使用的东西。

GWT - 我将它用于动态UI和Web布局。我喜欢重复使用的简易性,它教会我绝对讨厌javascript。我真的甚至不能让自己做更多的HTML / JS。

Hibernate - POJO到数据库,轻松自如。除了映射之外,我真正需要的是它允许我拥有一个跨多个数据库工作的应用程序。

春天 - 主要是安全。我为项目编写了自己的自定义LDAP位。

XML - 我使用了dom4j和其他实现,包括xstreamer。我想使用JiBX进行XML传输。这个问题是我需要符合特定标准而不是自动生成的XML消息。 Object-> XML-> Object也很常见,它可能是大型消息(250KB +)的性能瓶颈。

我尝试了一段时间的龙目岛并喜欢它,但偶尔会遇到问题,然后我炸毁了一个分区而失去了所有的工作。我真的不想再做同样的事了(一半的乐趣在于学习如何去做,现在我知道了... meh)。这教会了我为什么其他人想要减少显式代码并用隐式系统替换它。

我一直在研究Grails,但这让我很快陷入了JavaScript问题(你知道,我不喜欢它)。我可以在后端使用带有Grails的GWT但我回到了使用GWT深入杂草的问题。我还想到,可能有一种方法可以在GSP中使用由GWT小部件组成的Grails标记。我不太确定我的感受。

我对Grails的另一个问题是表单提交之前的验证逻辑在提交后与验证约束分开。我不知道它们如何统一(还)来产生“漂亮”的前端验证。我竭尽全力为GWT启动JSR-303 compliant validation project来帮助解决GWT的一些问题,并且非常喜欢结果。它还没有完成,但我仍然觉得它很有用。

所以,帮我找到更好的方法!

TL; DR - 我希望拥有一个数据库(和数据库无关)的GUI解决方案,允许使用一种语言进行动态Web编程。没错,尽可能接近一种语言。

TL; DR是TL; DR - 我现在讨厌JavaScript,求助。

编辑:我知道在没有JavaScript的情况下进行“Web 2.0”开发技术上是不可能的。我只是想成为那个不得不写它的人。 (例如,使用GWT等工具从我喜欢的语言中为我做这件事。)

java javascript gwt grails
10个回答
14
投票

只学JavaScript。

抵抗是徒劳的 ......你会被同化的。

PD:我是前JavaScript的敌人。现在这是我最喜欢的语言。


0
投票

我不使用javascript或ajax,在大中型应用程序中他们创建了很多兼容性问题,因为在客户端内部移动了部分代码,创建了安全漏洞和不同浏览器的问题。

我只使用HTML(5)和CSS2 / CSS3,我有很多成功。

我用这2种方式:

  • 使用“puzzle-techinque”。编写大量小而简单的模板(或图块)来创建大页面。我只使用JSTL和Spring标签,使用Rich / Prime / Ice-faces我在渲染,页面构建和流控制器方面遇到了很多问题,所以我放弃了它们。
  • 使用我的自定义库来解析HTML页面。我使用自定义语法创建模板,放入解析器并在输出流上写入。这是最好的方法。

如果你说我的首选语言和背景,我可以帮助你执行JS-free。


2
投票

你当然可以开发一个完整的Web 2.0项目而无需使用GWT编写Javascript(我们有),但在一天结束时你仍然需要知道HTML / CSS和Javascript。

这可能听起来像是一个愚蠢的陈述,但是一旦你认为GWT不是一个完美的抽象,它也不是一个完美的抽象。它不是用Java编写的,所以你不必再用Javascript编写代码,而是因为Java有更好的IDE,它是静态类型的,并且使维护变得更加容易。

所以是的,一定要使用GWT(并查看新的OOPHM,因为它很棒)但是不要忘记,如果你想为网络开发,你总是需要了解网络的底层框架。 。


1
投票

你听说过Echo吗?

它不提供问题的数据库部分,但它适用于您可以很好地使用的任何数据库。

Echo是一个用于构建基于Web的应用程序的平台,可以实现富客户端的功能。这些应用程序是使用面向组件和事件驱动的API开发的,无需处理浏览器的“基于页面”的特性。对于开发人员来说,Echo就像一个用户界面工具包。

最新的迭代Echo3具有在服务器端Java或客户端JavaScript中编写应用程序的能力。服务器端应用程序在任何Java Servlet容器中运行,不需要开发人员了解HTML,HTTP或JavaScript。


1
投票

您可能想看看一些AJAX驱动的JSF库。 IceFaces和RichFaces都很稳固。


1
投票

去过也做过。我是一名GWT开发人员3年......我开始在v1.1中使用它! GWT非常棒,适用于小型应用程序。但是,即使您将应用程序划分为子模块,开发也会在适度应用程序大小时进行爬行。

具有讽刺意味的是,UI框架具有如此有限的UI创建工具。 :)

就个人而言,我咬了一口子并学习了javascript。它没有我想象的那么糟糕。特别是与jQuery。 :)

显然没有完美的框架。但是,现在GWT已经出现了3。5年的事实,而且在Java世界中它仍然被忽略了,应该告诉你一些事情。既然你在空闲时间这样做,我建议学习最流行的框架:Struts。你会看到它的局限性,以及它如此受欢迎的原因。当然,你需要jQuery来实现2.0功能。 :)


1
投票

看看JRapid,一个面向Java开发人员的快速开发平台。它生成非常强大的支持Ajax的UI,无需编码。


1
投票

不确定你是否愿意这样,但你听说过Haxe吗?您可能不喜欢它,但它的AIO(一体化)解决方案(有点)。


0
投票

我可以理解你对JavaScript的厌恶,它当然有它的问题,但我认为你的战斗性质在这一点上。

Web 2.0强烈基于JavaScript,因为它提供了在客户端计算机上执行任务而无需页面加载的能力。

我敢肯定有其他选择,但如果你想要Web 2.0的外观和感觉,你最终会做很多工作而几乎没有奖励。 JavaScript是这项工作的可接受和功能性工具。


0
投票

我会说坚持使用GWT并且只喝更多的Koolaid。这是一个非常棒的开发模型,似乎在那些没有尝试过它的人身上丢失了。

如果你想提高你的GWT体验,那就跳到最前沿(我在主干上工作,它非常稳定)并使用其他谷歌发起的项目,如GIN,gwt-incubator和Guice。特别是观看Ray Ryan的GWT最佳实践Google I / O谈话:http://www.youtube.com/watch?v=PDuhR18-EdM

至于“框架”部分:忘掉他们。只需使用普通的servlet,让GWT为您处理RPC。当您必须处理JSP并且您拥有自己的AJAX调用时,Servlet会很痛苦,但是当它们只实现异步应用程序逻辑时,它并没有那么糟糕。 Guice Servlet让一切变得非常简单。如果需要,您仍然可以使用JVM托管语言编写servlet。

与其他JavaScript框架相比,GWT具有令人难以置信的优势,因为它提供的抽象层允许未来的重大进步,而无需对代码进行任何更改。如果GWT编译器和浏览器检测脚本可以利用新的浏览器功能,那么您将从简单的重新编译中受益。

我在XML中的要求中看到了很大的烦恼...希望这只是为了与第三方服务集成,而您的客户端 - 服务器通信可以只是GWT-RPC。

© www.soinside.com 2019 - 2024. All rights reserved.