1. java通过jsni调用内部js

Button button = new Button("java调用内部jsni的js方法");

button.addClickHandler(new ClickHandler() {

@Override

public void onClick(ClickEvent event) {

//gwt中java调用js方法

execute("js方法被调用");

}

});

/**

* JSNI方法

* @param id

*/

public static native void execute(String str) /*-{

alert(str);

}-*/;

2. 内部js通过jsni调用java方法

Button button1 = new Button("内部jsni的js调用java方法");

button1.addClickHandler(new ClickHandler() {

@Override

public void onClick(ClickEvent event) {

//gwt中java调用js方法

executeJs("java方法被调用");

}

});

/**

* JSNI方法, 里面调用java方法 javaAlert

* @param id

*/

public static native void executeJs(String str) /*-{

@com.hw.client.TestCall::javaAlert(Ljava/lang/String;)(str);

}-*/;

3.gwt中java方法调用外部js

在gwt工程的index.html中加入外部方法

然后在onModuleLoad中java方法进行调用

Button button2 = new Button("JAVA调用外部js");

button2.addClickHandler(new ClickHandler() {

@Override

public void onClick(ClickEvent event) {

//gwt中java调用js方法

callOutJS("外部js被调用");

}

});

/**

* JSNI方法 调用外部js方法

* @param id

*/

public static native void callOutJS(String str) /*-{

$wnd.callOutJs(str);

}-*/;

4.  外部js调用gwt的java方法

在onModuleLoad方法中调用  outJsCallGwt();

outJsCallGwt方法为

/**

* 需要被调用的js方法

* @param id

*/

private static native void outJsCallGwt() /*-{

$wnd.outJsCallGwt = function (str) {

alert("此处是gwt:"+ str);

};

}-*/;

在index.html中加入按钮以调用

点击

现贴出application和index.html代码

package com.hw.client;

import com.google.gwt.core.client.EntryPoint;

import com.google.gwt.event.dom.client.ClickEvent;

import com.google.gwt.event.dom.client.ClickHandler;

import com.google.gwt.user.client.Window;

import com.google.gwt.user.client.ui.Button;

import com.google.gwt.user.client.ui.RootPanel;

public class TestCall implements EntryPoint {

public void onModuleLoad() {

Button button = new Button("java调用内部jsni的js方法");

button.addClickHandler(new ClickHandler() {

@Override

public void onClick(ClickEvent event) {

//gwt中java调用js方法

execute("js方法被调用");

}

});

Button button1 = new Button("内部jsni的js调用java方法");

button1.addClickHandler(new ClickHandler() {

@Override

public void onClick(ClickEvent event) {

//gwt中java调用js方法

executeJs("java方法被调用");

}

});

Button button2 = new Button("JAVA调用外部js");

button2.addClickHandler(new ClickHandler() {

@Override

public void onClick(ClickEvent event) {

//gwt中java调用js方法

callOutJS("外部js被调用");

}

});

RootPanel.get().add(button);

RootPanel.get().add(button1);

RootPanel.get().add(button2);

outJsCallGwt();

}

/**

* JSNI方法 调用外部js方法

* @param id

*/

public static native void callOutJS(String str) /*-{

$wnd.callOutJs(str);

}-*/;

/**

* JSNI方法

* @param id

*/

public static native void execute(String str) /*-{

alert(str);

}-*/;

/**

* JSNI方法, 里面调用java方法 javaAlert

* @param id

*/

public static native void executeJs(String str) /*-{

@com.hw.client.TestCall::javaAlert(Ljava/lang/String;)(str);

}-*/;

/**

* 被js方法调用

* @param id

*/

public static void javaAlert(String str){

Window.alert(str);

}

/**

* 需要被调用的js方法

* @param id

*/

private static native void outJsCallGwt() /*-{

$wnd.outJsCallGwt = function (str) {

alert("此处是gwt:"+ str);

};

}-*/;

}

Web Application Starter Project

Your web browser must have JavaScript enabled

in order for this application to display correctly.

Web Application Starter Project

Please enter your name:

点击

备注: 以上html代码中

function callOutJs(str){

alert('此处是外部js方法:'+ str);

}

java gwt_gwt中java与js的相互调用 | 学步园相关推荐

  1. java调用sql返回list_Spring JdbcTemplate实现有java.sql.ResultSet结果集返回的存储过程调用 | 学步园...

    一.调用存储过程 方式一: /** * 方法功能说明:通过存储过程分页,获取分页信息以及查询记录(装在list中): * List.get(0)= hsTable; //存放分页信息(tableNam ...

  2. Java(JCo3)与SAP系统相互调用

    Java(JCo3)与SAP系统相互调用 外部系统(Java)调用BAPI函数 安装JCo3 创建JCo3连接 直连 连接池 DestinationDataProvider接口(不需连接属性配置文件) ...

  3. java.util接口_函数接口– Java 8中java.util.function包中的函数接口

    java.util接口 我以前写过有关功能接口及其用法的文章. 如果您正在探索要成为Java 8一部分的API,尤其是那些支持lambda表达式的API,您会发现很少的接口,例如Function,Su ...

  4. Java 8中java.util.function包中的谓词和使用者接口

    在我以前的文章中,我写了关于Function接口的内容 ,它是java.util.package的一部分. 我还提到了Predicate接口,它是同一包的一部分,在这篇文章中,我将向您展示如何使用Pr ...

  5. 函数接口– Java 8中java.util.function包中的函数接口

    我以前写过有关功能接口及其用法的文章. 如果您正在探索要成为Java 8一部分的API,尤其是那些支持lambda表达式的API,您会发现很少的接口,例如Function,Supplier,Consu ...

  6. 转载 iOS js oc相互调用(JavaScriptCore) --iOS调用js

    iOS js oc相互调用(JavaScriptCore) 从iOS7开始 苹果公布了JavaScriptCore.framework 它使得JS与OC的交互更加方便了. 下面我们就简单了解一下这个框 ...

  7. jar java classpath_win7中java编程工具安装 java环境变量设置

    win7中java编程工具安装 java环境变量设置 Question:编译是显示'javac'不是内部或外部命令,也不是可运行的程序或批处理文件 解决: 在[系统变量]里编辑java_home.cl ...

  8. java 上下键_用键盘的上下左右键控制JAVA SWING UI中的组件的移动等事件 | 学步园...

    用键盘的上下左右键控制JAVA SWING UI中的组件的移动等事件 import java.awt.*; import java.awt.event.*; import javax.swing.*; ...

  9. java原始类型_Java的原始类型(Primitive Type) | 学步园

    我们知道,在Java中,变量有两种类型,一种是原始类型,一种是引用类型. 原始类型一共有8种,它们分别是char,boolean,byte,short,int,long,float,double.在J ...

  10. iOS js oc相互调用(JavaScriptCore)(二)

    http://blog.csdn.net/lwjok2007/article/details/47058795 上节地址 http://blog.csdn.net/lwjok2007/article/ ...

最新文章

  1. 【ACM】杭电OJ 1005
  2. TVideoGrabber的使用(简介)
  3. [转]ASP.Net缓存总结
  4. ROBOT STUDIO 学习笔记
  5. 服务器安装红帽系统进入不图形界面,CentOS 安装图形化界面方法
  6. Python开发一个股票类库
  7. oracle数据库卸载(需要完全卸载oracl才能重装)
  8. html 变量类型强制转换,html、js前台数据传到后台,spring复杂类型转换
  9. java字符后移_java把字符串参数往后移3位后输出
  10. 获取aplicationContext对象,从而获取任何注入的对象
  11. 桶排序(bucket sort)
  12. 局域网屏幕共享_给安卓手机连一个大屏幕——多端协作(六)
  13. 再谈PHP从入门到精通需要几年
  14. Errors were encountered while processing
  15. python 安装Cython
  16. 我的世界java1.16.3村庄种子,我的世界2020年最新版村庄种子
  17. java时间戳转换日期格式_Java时间戳与日期格式字符串的互转
  18. 前端后端程序员必备的Linux基础知识
  19. 2022危险化学品经营单位主要负责人上岗证题库及在线模拟考试
  20. 三、中台的收益和价值

热门文章

  1. 在CMD中输入adb命令,提示“'adb' 不是内部或外部命令,也不是可运行程序或批处理文件”的解决方法
  2. 浏览器报错 CORS 请求不是 http
  3. 博弈论、竞价机制和AI
  4. JavaScript图标移动小案例
  5. Unity编辑器拓展(GraphView制作对话系统编辑器)
  6. Linux 一条命令删除某端口被占用的进程
  7. JQuery.validate验证表单后Ajax异步提交
  8. vbScript实现开机后的开心网自动登陆
  9. collect2: error: ld returned 1 exit status(Linux下Gcc编译问题)
  10. 解释下ArrayList集合为啥允许值为null