使用GWT后端但不是前端

时间:2013-02-17 08:18:50

标签: jquery gwt

我刚参加了一个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 个答案:

答案 0 :(得分:3)

GWT的使用是将其用作前端技术。如果您想要删除该功能,那么您可能根本不需要GWT并使用后端技术。

答案 1 :(得分: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`.

答案 2 :(得分: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。

答案 3 :(得分:1)

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

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

然而,如果你坚持走这条路,那么这个问题的起点是: GWT RPC data format

所选答案链接源以获取格式的基本概述。尽管有详细的信息,但除了深入了解之外别无选择。该协议在其他任何地方都没有完整记录。