2011-07-02 48 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