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]

2 つのテクノロジーを橋渡しするにはどうすればよいですか? JQuery Ajaxリクエストをディスパッチし、GWTを使用して返信する正しい方法は何ですか?

4

4 に答える 4

3

GWT の使用は、フロントエンド テクノロジとして使用することです。その機能を削除したい場合は、GWT をまったく必要とせず、バックエンド テクノロジを使用することができます。

于 2013-02-17T09:45:53.057 に答える
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 に答える
2

GWT には 3 つの「レイヤー」があり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 に答える
1

GWT-RPCにリクエストを送信し、GWT-RPCからの応答を解析するための独自のコードを作成するまでに、GWTのかなりの部分を書き直していたはずです。

最善の策は、クライアント側でGWTを使用してサーバー通信を処理する(そしておそらく結果をjQueryに渡す)か、GWT-RPC呼び出しの代替インターフェイスであるサーバー側でサーブレットのようなものを作成することです。

ただし、この道を進むことを主張する場合、開始する場所は次の質問です: GWTRPCデータ形式

選択した回答は、フォーマットの基本的な概要のソースにリンクしています。詳細については、ソースを掘り下げる以外に選択肢はありませんが。プロトコルは他のどこにも完全に文書化されていません。

于 2013-02-18T03:45:40.240 に答える