1

我刚刚加入了一个 GWT 项目。

我们现在的目标是创建更多的登录页面。

我想将这些页面添加为简单的 HTML 并使用现有的 GWT 后端。

这可能吗?

当我查看当前登录页面中的网络时,我看到 GWT 使用与竖线连接的长字符串,例如:

7|0|11|http://15.165.128.219:8099/welcome/|B080515AD1EBC13C065F38E72385F941|com.company.AdminService|login|com.company.LoginDetails/94248548|java.util.HashSet/3273092938|java.lang.String/2004016611|myusername|mypassword|1|2|3|4|1|5|5|P__________|6|1|7|8|6|1|7|9|10|11|

我知道 JQuery Ajax

$.ajax( { username : "username" , password : "password" }

GWT 响应如下所示:

//OK['C',[],0,7]

如何桥接这两种技术?使用 GWT 发送 JQuery Ajax 请求和回复的正确方法是什么?

4

4 回答 4

3

GWT的使用就是把它作为一种前端技术来使用。如果您想删除该功能,那么您可能根本不需要 GWT 并使用后端技术。

于 2013-02-17T09:45:53.057 回答
2

GWT 具有三个“层” client, shared and server

在服务器端,您可以使用任何适合的Java and database.

GWT 在浏览器和服务器之间有自己的远程过程调用机制。

这很像vanilla Java RMI- 为您的服务器函数定义接口和实现,并且将生成代码以允许您的客户端代码调用它们,就好像它们是简单的本地方法一样。

XML or JSON这让为请求和响应定义数据格式的所有工作都一扫而光。只需为服务器编写函数,从客户端代码调用函数(仍然是 Java),所有的marshalling, unmarshalling, network communication等等都为您完成。

因此,如果没有客户端,您不能单独使用 RPC 功能,而且这样使用也不是一个好习惯。

My suggetion is to go for Pure `AJAX`.
于 2013-02-17T10:36:07.597 回答
2

通过 javascript 将 ajax 请求分派到 GWT RPC 调用的正确方法是将调用转换为 javascript api。Gwt 有一个库可以让这变得相当容易 - https://code.google.com/p/gwt-exporter/

它允许您在 GWT 的 java 代码中注释方法(例如,一个包含调用某些 GWT RPC 的方法的类),并以一个好听的名称使其可用于 javascript。

例如,

  package com.example;
  @Export
  public static class YourClass implements Exportable {
    private YourServiceAsync service = (YourServiceAsync) Gwt.create(YourService.class);
    public void foo() {
      //you can make RPC calls here via the normal GWT way
      service.doService("foo", new YourAsyncCallback()); 
    }
    public static String bar(){
      return "bar";
    }
  }

然后在javascript中,您可以调用这些方法

   // create an instance of YourClass 
   var a = new com.example.YourClass ()
   // call an instance method
   a.foo();
   // call a static method
   com.example.YourClass .bar();

还有更高级的用途(例如在 javascript 中传入闭包) - 检查该项目的 doco/wiki。

于 2013-07-02T01:46:28.573 回答
1

当您编写自己的代码以向 GWT-RPC 发出请求并解析来自 GWT-RPC 的响应时,您已经重写了相当多的 GWT。

您最好的选择是在客户端使用 GWT 来处理服务器通信(然后可能将结果传递给 jQuery),或者在服务器端编写类似 servlet 的东西,作为 GWT-RPC 调用的替代接口。

但是,如果您坚持走这条路,那么开始的地方就是这个问题: GWT RPC 数据格式

所选答案链接了格式的基本概述的来源。对于完整的细节,虽然别无选择,只能深入挖掘源头。该协议在其他任何地方都没有完整记录。

于 2013-02-18T03:45:40.240 回答