从GWT中的另一个Js调用JavaScript方法

从GWT中的另一个Js调用JavaScript方法,javascript,java,gwt,Javascript,Java,Gwt,我试图从java方法调用另一个javascript方法中的javascript方法 这是我的密码: public void print(){ Excec(); } native String flipName(String tst) /*-{ // ...implemented with JavaScript alert(tst); }-*/; native String Excec() /*-{ alert("exe"); flipName(

我试图从java方法调用另一个javascript方法中的javascript方法

这是我的密码:

public void print(){
    Excec();
}


native String flipName(String tst) /*-{

    // ...implemented with JavaScript
    alert(tst);

}-*/;

native String Excec() /*-{

    alert("exe");
    flipName("1");
    alert("exe1");

}-*/;
运行应用程序时,会显示一个错误:

Excec()([]): flipName is not defined 


com.google.gwt.dev.shell.BrowserChannelServer.invokeJavascript(BrowserChannelServer.java:249) 
com.google.gwt.dev.shell.ModuleSpaceOOPHM.doInvoke(ModuleSpaceOOPHM.java:136)
com.google.gwt.dev.shell.ModuleSpace.invokeNative(ModuleSpace.java:576) 

这必须以与从JSNI方法中调用Java方法大致相同的方式完成

必须指定要调用的方法的完全限定名,还必须指定参数的类型

更多信息可在此处找到:

实际上,这是可行的(将be.knarf.gwt.client.Example替换为类的正确包名和类名):


这必须以与从JSNI方法中调用Java方法大致相同的方式完成

必须指定要调用的方法的完全限定名,还必须指定参数的类型

更多信息可在此处找到:

实际上,这是可行的(将be.knarf.gwt.client.Example替换为类的正确包名和类名):


由于GWT2.7,JSNI代码可以简化。这是。@示例::flipName(*)(“hi”);而不是这个。@be.knarf.gwt.client.Example::flipName(Ljava/lang/String;)(“hi”);由于GWT2.7,JSNI代码可以简化。这是。@示例::flipName(*)(“hi”);而不是这个。@be.knarf.gwt.client.Example::flipName(Ljava/lang/String;)(“hi”);
private native void flipName(String tst)
/*-{
   alert(tst);
}-*/;

private native void excec()
/*-{
   alert("exe");
   this.@be.knarf.gwt.client.Example::flipName(Ljava/lang/String;)("hi");
   alert("exe1");
}-*/;