使用GWT'从java方法获取返回值;s JSNI
Get returned value from java method with GWT's JSNI
我试图从java方法中获取返回值,但它返回了一些非常奇怪的东西:它返回了我认为用javascript编写的方法本身。
这里是java方法的代码:
public String getNameToShow() {
return "Chart number 1";
}
和javascript方法:
public native void drawJSChart(String divId, int a, String jsData) /*-{
try {
//First create a script where to paste the jsData
var scriptID = this.@myPackage.MyClass::getNameToShow();
console.log(scriptID);
//Some code
} catch (e) {
console.error(e.message);
}
}-*/;
谢谢。
它返回js方法,因为您要求使用js方法。
从JSNI代码中调用java方法应该如下所示:
var scriptID = this.@myPackage.MyClass::getNameToShow(*)(); //notice second pair of braces
基本上,要从JSNI调用java方法,需要放置两对大括号。第一个定义方法参数类型(在我的示例中,我使用了*
,因此它将匹配任何参数类型),第二个用于将参数传递到方法中。
您还必须传递Java函数的类型。像这样写:
package XXXXX.client;
import com.google.gwt.core.client.EntryPoint;
class _24_TestJSNIMethodCallback implements EntryPoint {
public void onModuleLoad() {
drawJSChart();
}
public String getNameToShow() {
return "Chart number 1";
}
public native void drawJSChart() /*-{
try {
//First create a script where to paste the jsData
var scriptID = this
.@XXXXX.client._24_TestJSNIMethodCallback::getNameToShow()();
$wnd.alert(scriptID);
//Some code
} catch (e) {
console.error(e.message);
}
}-*/;
}
相关文章:
- 从ID Jquery类获取返回值时出现问题
- 从 html.append 追加的 html 下拉列表中获取返回值
- 如何从Ajax请求中获取返回值并将其分配到元素中
- jQuery deferred:用于延迟函数的返回,直到函数内的异步调用完成+获取返回值
- 如何使用Ajax内部调用JQuery在函数中获取返回值
- 从回调函数 -JQuery 获取返回值
- 尝试从 javascript 模块获取返回值
- 从 WebKit / JavaScriptCore 中的 Javascript 获取返回值
- 通过 ajax 获取返回值
- jquery ajax 获取返回值
- 使用GWT'从java方法获取返回值;s JSNI
- 使用jQuery和AJAX调用PHP类方法并获取返回值
- 从函数中获取返回值是d
- 可以't在chrome控制台中从带名称空间的javascript函数获取返回值
- 如何获取返回值的内容
- 如何从IJavaScriptExecutor中获取返回值
- 使用Odoo8从javascript中的调用函数获取返回值
- 如何从方法中的方法获取返回值
- 如何从确认弹出警报中获取返回值
- 可以't从节点模块中的异步瀑布中获取返回值