0

从 Javascript 调用“特定”Java 方法并进行回调等的各种选项是什么?

例如,我知道一个正在使用 DWR ..但想知道是否有任何其他库可以使用,或者这是否可以由 AJAX 本身完成..

推荐的方法是什么?

4

2 回答 2

2

简而言之,除了在与 JavaScript 相同的页面上下文中运行的 Java applet 可能的例外,JavaScript 无法直接调用 Java 方法,反之亦然。DWR 不直接从 JavaScript 调用任何 Java 方法,它向服务器发送 AJAX 请求并使用它自己的中间层来检测请求和响应处理,使其看起来好像在调用 Java 方法。

但无论如何,让客户端中的 JavaScript 代码和服务器上的 Java 代码相互通信的典型方法是在服务器上定义一个向客户端公开的 API。然后,客户端可以使用公开的 API 发出请求(使用 AJAX 或您喜欢的任何其他机制)。客户端不直接调用任何 Java 方法,而是向服务器上的给定 URL 发送请求,该 URL 被映射回一些 Java 代码。大多数流行的 JavaScript 框架都提供了方便的方法来简化 AJAX 请求处理和回调。

如果出于某种原因您希望功能等同于能够在任意类中调用任意方法并将结果返回给您,那么您可以定义一个 API 方法,该方法将类名和方法名作为参数,然后使用反射执行方法调用。这可能与 DWR 的服务器端部分所做的非常接近。

于 2011-07-02T12:41:10.900 回答
0

我知道你可以在使用 Mozilla Rhino 时做到这一点,但我猜你是在谈论浏览器运行时环境,所以这个响应可能不是很有帮助。

于 2011-07-02T12:17:35.827 回答