2011-07-02 70 views
0

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

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

什么是推荐的方法?

回答

2

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

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

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

+0

除了REST的一切都很好;)它不一定是RESTful。 –

+0

@Murali副总裁 - 确实如此。固定。 – aroth

0

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

+0

是的正确..不会为我工作.. – testndtv