DWR的替代方案(www.directwebremoting.org)

14

我很喜欢过去使用DWR (www.directwebremoting.org),并在几个项目中使用它。它通过在服务器上创建javascript代理/存根来轻松实现AJAX。

虽然DWR已经存在多年,但自从主要开发人员离开后,它似乎放缓了速度,而且与早期相比也变得相当庞大。

就简单的Java到Javascript代理/封装(基本上是将低级别的AJAX抽象出来)的需求而言 - 有人能推荐一个替代方案吗? 我所发现的只有RAJAX,但它也相当陈旧。

谢谢!


我一直很喜欢DWR。目前,我正在寻找最佳且得到良好支持的选项来验证表单输入的DWR风格。自从发布以来这么多年过去了,你是否已经开发出了首选项?我很惊讶没有看到一个实际的Spring解决方案。 - Marco Schoolenberg
8个回答

7

我使用DWR已经超过3年了,我同意DWR没有新的开发进展,但我觉得DWR能够满足我的大部分需求,比如易于使用的AJAX、与Spring、Acegi和Spring Security的良好集成、反向AJAX和稳定性。因此,除非我需要一些缺失的功能,否则我不认为有必要开始寻找替代品。


是的,但是最新的DWR能够与Hibernate 5.3配合使用吗? 我必须将一个DWR项目从hib 3升级到5.3,并且在让DWR与Spring 5 / Hibernate 5.3配合工作方面遇到了一些问题。 - tom

3
您可以使用 jQuery 来进行JavaScript交互。通过 jQuery UI 和大量的 jQuery插件,您可以创建功能强大的用户界面。
这解决了前端部分的问题,但您仍然需要实现与服务器的通信。在最简单的情况下,您可以使用jQuery的getJSON方法从服务器获取数据。
服务器需要响应类似于JSON的内容。您可以使用诸如JSON标签库JSON对象模型之类的东西。实际上,jQuery并不关心JSON来自何处,因此一个简单的JSP(或servlet)也可以胜任:
 <jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="1.2">
 <jsp:directive.page contentType="text/json"/>
  {
     "firstName": "John",
     "lastName": "Smith",
     "address": {
         "streetAddress": "21 2nd Street",
         "city": "New York",
         "state": "NY",
         "postalCode": "10021"
     },
   }
 </jsp:root>

JSON是一个不错的选择,因为它可以轻松地与许多JavaScript库配合使用,并且不会将您绑定到任何服务器端语言/库/技术。


那么文本转义呢?如果我从bean中读取字符串,如何避免向浏览器写入不良JSON?我正在考虑包含“和/n”的字符串。jsp:getProperty标签是否能够为您完成这项工作? - Plap

3
偶然间我在浏览邮件列表时发现了这个网站http://jabsorb.org/。虽然我还没有尝试,但是文档似乎符合我的需求。
顺便说一下,关于我使用的UI框架(回应一些其他帖子),我正在使用http://www.qooxdoo.org/,它非常棒。

1

我在客户端使用jQuery,在服务器端使用Jersey。它们让你可以自由地使用xml、json或两者兼用。


1
我在使用JiBX将我的Java对象编组为XML并使用Jettison将XML转换为JSON方面取得了很大的成功。这个过程也可以反向进行。显然,这不会代理方法调用,并需要一些粘合剂才能开始。但是,如果DWR不适合您的需求,而且没有其他库看起来有吸引力,那么自己开发也不是一个坏主意。

0

0

你也可以看看 Echo2OpenLazsloGWT 也不错。如果你想从商业角度考虑,可以尝试 ExtJS


0

YAML 可以与 Java 和 JSON 一起使用,以便在 3 中现代化 DWR。我也顺畅地将 XML 松散转向更自然的 YAML。


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