java gwt_gwt中java与js的相互调用 | 学步园
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的相互调用 | 学步园相关推荐
- java调用sql返回list_Spring JdbcTemplate实现有java.sql.ResultSet结果集返回的存储过程调用 | 学步园...
一.调用存储过程 方式一: /** * 方法功能说明:通过存储过程分页,获取分页信息以及查询记录(装在list中): * List.get(0)= hsTable; //存放分页信息(tableNam ...
- Java(JCo3)与SAP系统相互调用
Java(JCo3)与SAP系统相互调用 外部系统(Java)调用BAPI函数 安装JCo3 创建JCo3连接 直连 连接池 DestinationDataProvider接口(不需连接属性配置文件) ...
- java.util接口_函数接口– Java 8中java.util.function包中的函数接口
java.util接口 我以前写过有关功能接口及其用法的文章. 如果您正在探索要成为Java 8一部分的API,尤其是那些支持lambda表达式的API,您会发现很少的接口,例如Function,Su ...
- Java 8中java.util.function包中的谓词和使用者接口
在我以前的文章中,我写了关于Function接口的内容 ,它是java.util.package的一部分. 我还提到了Predicate接口,它是同一包的一部分,在这篇文章中,我将向您展示如何使用Pr ...
- 函数接口– Java 8中java.util.function包中的函数接口
我以前写过有关功能接口及其用法的文章. 如果您正在探索要成为Java 8一部分的API,尤其是那些支持lambda表达式的API,您会发现很少的接口,例如Function,Supplier,Consu ...
- 转载 iOS js oc相互调用(JavaScriptCore) --iOS调用js
iOS js oc相互调用(JavaScriptCore) 从iOS7开始 苹果公布了JavaScriptCore.framework 它使得JS与OC的交互更加方便了. 下面我们就简单了解一下这个框 ...
- jar java classpath_win7中java编程工具安装 java环境变量设置
win7中java编程工具安装 java环境变量设置 Question:编译是显示'javac'不是内部或外部命令,也不是可运行的程序或批处理文件 解决: 在[系统变量]里编辑java_home.cl ...
- java 上下键_用键盘的上下左右键控制JAVA SWING UI中的组件的移动等事件 | 学步园...
用键盘的上下左右键控制JAVA SWING UI中的组件的移动等事件 import java.awt.*; import java.awt.event.*; import javax.swing.*; ...
- java原始类型_Java的原始类型(Primitive Type) | 学步园
我们知道,在Java中,变量有两种类型,一种是原始类型,一种是引用类型. 原始类型一共有8种,它们分别是char,boolean,byte,short,int,long,float,double.在J ...
- iOS js oc相互调用(JavaScriptCore)(二)
http://blog.csdn.net/lwjok2007/article/details/47058795 上节地址 http://blog.csdn.net/lwjok2007/article/ ...
最新文章
- 【ACM】杭电OJ 1005
- TVideoGrabber的使用(简介)
- [转]ASP.Net缓存总结
- ROBOT STUDIO 学习笔记
- 服务器安装红帽系统进入不图形界面,CentOS 安装图形化界面方法
- Python开发一个股票类库
- oracle数据库卸载(需要完全卸载oracl才能重装)
- html 变量类型强制转换,html、js前台数据传到后台,spring复杂类型转换
- java字符后移_java把字符串参数往后移3位后输出
- 获取aplicationContext对象,从而获取任何注入的对象
- 桶排序(bucket sort)
- 局域网屏幕共享_给安卓手机连一个大屏幕——多端协作(六)
- 再谈PHP从入门到精通需要几年
- Errors were encountered while processing
- python 安装Cython
- 我的世界java1.16.3村庄种子,我的世界2020年最新版村庄种子
- java时间戳转换日期格式_Java时间戳与日期格式字符串的互转
- 前端后端程序员必备的Linux基础知识
- 2022危险化学品经营单位主要负责人上岗证题库及在线模拟考试
- 三、中台的收益和价值
热门文章
- 在CMD中输入adb命令,提示“'adb' 不是内部或外部命令,也不是可运行程序或批处理文件”的解决方法
- 浏览器报错 CORS 请求不是 http
- 博弈论、竞价机制和AI
- JavaScript图标移动小案例
- Unity编辑器拓展(GraphView制作对话系统编辑器)
- Linux 一条命令删除某端口被占用的进程
- JQuery.validate验证表单后Ajax异步提交
- vbScript实现开机后的开心网自动登陆
- collect2: error: ld returned 1 exit status(Linux下Gcc编译问题)
- 解释下ArrayList集合为啥允许值为null