0

私の理解では、GWT RequestFactory(RF)APIは、クライアント側のエンティティがサーバー側のDAOと直接通信できるデータ指向のサービスを構築するためのものです。

私の理解では、クライアント側からRFメソッドをRequestFactoryServlet起動すると、サーバー上に存在することが最初に要求を受信します。このサーブレットはのように機能DispatchServletし、データストア内の単一のエンティティ(モデル)に関連付けられている正しいサービスにリクエストをルーティングします。

私は、リクエストをビジネスロジック(EJBなど)に渡し、応答を計算して返送するサーブレットを作成することに慣れています。これは、JSPビュー、複雑なJSON(Jackson)オブジェクト、またはその他のものである可能性があります。

すべてのRFの例で、これらのサーブレットのそのような存在は見られず、GWT-RFランドにも存在するのではないかと思います。が自動的にリクエストを正しいDAOとメソッドにルーティングし、DAOメソッドが応答で返されるものである場合RequestFactoryServlet、GWTRFが従来のサーブレットを利用していないシナリオを見ることができます。(1)これは本当ですか?

とにかく、私のGWTアプリケーションでは、などの特定のURLをヒットしたい場合がありますhttp://www.example.com?foo=bar(2)これにRFを使用できますか?使用する場合、どのように使用しますか?

GWT RFの動作を並べて、2つの具体的な例を見ることができれば、すべての点をつなぐことができると思います。

  • シナリオ#1:サーバー側のDAOとの相互作用を必要とする、などのメソッドを持つPersonエンティティがあります。とisHappy()isSad()
  • シナリオ#2:HTTPリクエストを送信しhttp://www.example.com?foo=bar、HTTP応答を手動で検査したい

RF APIで両方を達成できるのであれば、それが私の最初の好みです。後者のシナリオをRFで実現できない場合は、GWTが推奨する代替案の理由と内容を説明してください。前もって感謝します!

4

1 に答える 1

0

1.-リクエストファクトリはエンティティだけでなくサービスでも機能するため、クライアントから呼び出すメソッドを使用してサーバー側で任意のサービスを定義できます。もちろん、RFサービスを使用すると、特定のタイプ(プリミティブ、ボックス化されたプリミティブ、セット、リスト、およびRFプロキシ)を処理できます。

@Service(value=RfService.class, locator=RfServiceLocator.class)
public interface TwService extends RequestContext {
  Request<String> parse(String value);
}

public class RfService {
public String parse(String value) {
  return value.replace("a", "b");
}

2.- RFは、RFサーブレットが生成する以外のメッセージペイロードを受信するとは考えられていません。RFを使用してクライアント側でできることのほとんどは、別のサイトでホストされているサービスを要求することです(サーバー側とクライアント側を異なる場所に展開する場合)ホスト)。

gwt worldの他のメカニズムを使用して、他のURLからデータを取得できます。また、gwtqueryAjaxとデータバインディングまたはこの記事を参照してください。

于 2012-11-12T15:02:09.203 に答える