`
zf0512305
  • 浏览: 7313 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

gwt中 java、js互相调用

    博客分类:
  • gwt
gwt 
阅读更多
代码部分
package com.tet.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;

/**
* Entry point classes define onModuleLoad().
*/
public class Zftet implements EntryPoint {

  @Override
  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被调用");

      }
    });
    logout();
    outJsCallGwt();
    outJsCallGwt1();
    RootPanel.get().add(button);
    RootPanel.get().add(button1);
    RootPanel.get().add(button2);

  }

  private static native void SetWPPic(String xx) /*-{
top.SetWPPic(xx);
  }-*/;

  /**
   * 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.tet.client.Zftet::javaAlert(Ljava/lang/String;)(str);
  }-*/;

  native void logout() /*-{
$wnd.logout = function() {
@com.tet.client.Zftet::test()();
};
  }-*/;

  static void test() {
    Window.alert("++++");
  }

  static void test(String value) {
    Window.alert(value);
  }

  /**
   * 被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);
};
  }-*/;

  /**
   * 需要被调用的js方法
   *
   * @param id
   */
  private static native void outJsCallGwt1() /*-{
$wnd.outJsCallGwt1 = function(str) {
@com.tet.client.Zftet::test(Ljava/lang/String;)(str)();
};
  }-*/;
}


HTML 页面

<!doctype html>

<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<link type="text/css" rel="stylesheet" href="Zftet.css">
<title>Web Application Starter Project</title>


<script type='text/javascript'>
function WPSelectPic() {
window.external.notify("wp");
}

function SetWPPic(url) {
document.getElementById('File1').value = url;
window.alert(url);
}

function getActivityID() {
var id = "a6940e1e-fbbb-4fae-a233-9451e0854fc8";
return id;
}
</script>

<script type='text/javascript'>
function callOutJs(str) {
alert('此处是外部js方法:' + str);
}
</script>

<script type="text/javascript" language="javascript"
src="zftet/zftet.nocache.js"></script>
</head>

<!--                                           -->
<!-- The body can have arbitrary html, or      -->
<!-- you can leave the body empty if you want  -->
<!-- to create a completely dynamic UI.        -->
<!--                                           -->
<body>
<!-- OPTIONAL: include this if you want history support -->
<iframe src="javascript:''" mce_src="javascript:''"
id="__gwt_historyFrame" tabIndex='-1'
style="position: absolute; width: 0; height: 0; border: 0"></iframe>

<!-- RECOMMENDED if your web app will not function without JavaScript enabled -->
<noscript>
<div
style="width: 22em; position: absolute; left: 50%; margin-left: -11em; color: red; background-color: white; border: 1px solid red; padding: 4px; font-family: sans-serif">
Your web browser must have JavaScript enabled in order for this
application to display correctly.</div>
</noscript>
<h1>Web Application Starter Project</h1>
<table align="center">
<tr>
<td colspan="2" style="font-weight: bold;"
mce_style="font-weight:bold;">Please enter your name:</td>
</tr>
<tr>
<button onclick="outJsCallGwt('外部按钮被点击')">点击1</button>
<button onclick="outJsCallGwt1('外部按钮被点击')">点击2</button>
<a href='javascript:;' onclick='logout()'>注销</a>
<td id="nameFieldContainer"></td>
<td id="sendButtonContainer"></td>
</tr>
<tr>
<td colspan="2" style="color: red;" mce_style="color:red;"
id="errorLabelContainer"></td>
</tr>
</table>
</body>
</html>

分享到:
评论

相关推荐

    GWT(Google Web Toolkit)

    GWT(Google Web Toolkit) 是 Google 最近推出的一个开发 Ajax 应用的框架,它支持用 Java 开发和调试 Ajax 应用,本文... 如果你觉得GWT提供的API不能满足需求,你可以利用JSNI将Javascript语句直接嵌入至Java代码中。

    使用 Cypal Studio for GWT 简化 Ajax 开发

    使用 Google Web Toolkit (GWT),Java 程序员可以使用纯 Java™ 编程语言编写富 Asynchronous JavaScript + XML (Ajax) 应用程序。专为 Eclipse IDE 设计的 Cypal Studio for GWT 将支持对 GWT 结构的管理。了解如何...

    New of GWT Introduction--GWT开发快速入门

    开发出来的Java应用将由GWT开发包提供的编译工具编译后声生成对应的、应用了Ajax技术的Web应用,Java应用中出现的、和服务器之间的交互动作被自动生成的异步调用代码所代替。 回页首 GWT特性 GWT除了...

    java开源包1

    一个Java远程调用框架,它将原生Java对象序列化压缩装入HTTP中。它是 Spring HttpInvoker的一个轻量级选择,特别适合于当你不想在客户端程序中使用Spring框架。 API访问授权的开放标准 OAuth OAuth 协议为用户资源...

    JAVA上百实例源码以及开源项目

     Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多的网络程序,这是最基础的部分。 递归遍历矩阵 1个目标文件,简单! 多人聊天室 3...

    JAVA上百实例源码以及开源项目源代码

     Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多的网络程序,这是最基础的部分。 递归遍历矩阵 1个目标文件,简单! 多人聊天室 3...

    java开源包4

    一个Java远程调用框架,它将原生Java对象序列化压缩装入HTTP中。它是 Spring HttpInvoker的一个轻量级选择,特别适合于当你不想在客户端程序中使用Spring框架。 API访问授权的开放标准 OAuth OAuth 协议为用户资源...

    java开源包101

    一个Java远程调用框架,它将原生Java对象序列化压缩装入HTTP中。它是 Spring HttpInvoker的一个轻量级选择,特别适合于当你不想在客户端程序中使用Spring框架。 API访问授权的开放标准 OAuth OAuth 协议为用户资源...

    java开源包11

    一个Java远程调用框架,它将原生Java对象序列化压缩装入HTTP中。它是 Spring HttpInvoker的一个轻量级选择,特别适合于当你不想在客户端程序中使用Spring框架。 API访问授权的开放标准 OAuth OAuth 协议为用户资源...

    java开源包6

    一个Java远程调用框架,它将原生Java对象序列化压缩装入HTTP中。它是 Spring HttpInvoker的一个轻量级选择,特别适合于当你不想在客户端程序中使用Spring框架。 API访问授权的开放标准 OAuth OAuth 协议为用户资源...

    java开源包9

    一个Java远程调用框架,它将原生Java对象序列化压缩装入HTTP中。它是 Spring HttpInvoker的一个轻量级选择,特别适合于当你不想在客户端程序中使用Spring框架。 API访问授权的开放标准 OAuth OAuth 协议为用户资源...

    java开源包8

    一个Java远程调用框架,它将原生Java对象序列化压缩装入HTTP中。它是 Spring HttpInvoker的一个轻量级选择,特别适合于当你不想在客户端程序中使用Spring框架。 API访问授权的开放标准 OAuth OAuth 协议为用户资源...

    java开源包5

    一个Java远程调用框架,它将原生Java对象序列化压缩装入HTTP中。它是 Spring HttpInvoker的一个轻量级选择,特别适合于当你不想在客户端程序中使用Spring框架。 API访问授权的开放标准 OAuth OAuth 协议为用户资源...

    java开源包10

    一个Java远程调用框架,它将原生Java对象序列化压缩装入HTTP中。它是 Spring HttpInvoker的一个轻量级选择,特别适合于当你不想在客户端程序中使用Spring框架。 API访问授权的开放标准 OAuth OAuth 协议为用户资源...

    java开源包3

    一个Java远程调用框架,它将原生Java对象序列化压缩装入HTTP中。它是 Spring HttpInvoker的一个轻量级选择,特别适合于当你不想在客户端程序中使用Spring框架。 API访问授权的开放标准 OAuth OAuth 协议为用户资源...

    java开源包2

    一个Java远程调用框架,它将原生Java对象序列化压缩装入HTTP中。它是 Spring HttpInvoker的一个轻量级选择,特别适合于当你不想在客户端程序中使用Spring框架。 API访问授权的开放标准 OAuth OAuth 协议为用户资源...

    java开源包7

    一个Java远程调用框架,它将原生Java对象序列化压缩装入HTTP中。它是 Spring HttpInvoker的一个轻量级选择,特别适合于当你不想在客户端程序中使用Spring框架。 API访问授权的开放标准 OAuth OAuth 协议为用户资源...

    Java资源包01

    一个Java远程调用框架,它将原生Java对象序列化压缩装入HTTP中。它是 Spring HttpInvoker的一个轻量级选择,特别适合于当你不想在客户端程序中使用Spring框架。 API访问授权的开放标准 OAuth OAuth 协议为用户资源...

    SnapshotCrawler:如果使用GWT进行构建,则SnapshotCrawler可用于制作AJAX网站的快照,例如

    escaped_fragment =“中遇到的响应。 请参阅 的文档。 您可以简单地传递作为参数,并获取和捕获快照所有对“ ”标记具有洞察力的URL。 它还通过包含计算出HTML快照的POST调用自动调用Web服务器。 ##用法示例 示例1...

Global site tag (gtag.js) - Google Analytics