2011-09-15 6 views
0

GWT RequestFactoryを使用していて、サービス内のクライアント側のパラメータを転送する必要があります。 パラメータはドメインモデルの一部ではなく、データベースに格納されないため、クライアント上に作成する必要があります。 残念ながら、xxxProxyオブジェクトだけがパラメータとして使用でき、サーバー上にのみ作成できるため、これを行う方法はありませんでした。GWT RequestFactoryのクライアントパラメータ

私の具体的な例:

私は、サーバーからタスクをダウンロードしたいとロードするタスクオブジェクトを指定するパラメータとして要求してフィルタオブジェクトを送りたいです。

ありがとうございました!

+0

こんにちはステファン。あなたの問題を解決した場合は、Thomasの答えを正しいとマークしてください。フィードバックは、スタックオーバーフローの車輪を回転させ続ける。 –

答えて

3

RequestContextcreate()メソッドを使用して、クライアント上にプロキシを作成することができます。あなたの場合、プロキシはEntityProxyではなく、ValueProxyでなければなりません。バリュープロキシを「格納」する必要はありません(エンティティプロキシとは異なります)。

私はあなたと全く同じユースケースを持っており、とてもうまく動作します。

@Service(MyService.class) 
interface MyRequestContext extends RequestContext { 
    Request<List<TaskProxy>> findTasks(FilterProxy filter); 
} 

@ProxyFor(Filter.class) 
interface FilterProxy extends ValueProxy { 
    // your getters and setters here 
} 

...側の注意点として

MyRequestContext ctx = ...; 
FilterProxy filter = ctx.create(FilterProxy.class); 
filter.setXxx(...); 
// set your other filter 
ctx.findTasks(filter).fire(new Receiver<List<TaskProxy>>() { 
    @Override 
    public void onSuccess(List<TaskProxy> tasks) { 
    // ... 
    } 
}); 

は、あなたは間違っている、「唯一xxxProxyオブジェクトをパラメータとして使用することができ、」書きました。あなたは非常によく、プリミティブ型を使用することができます(intboolean、など)、そのラッパー型(IntegerBoolean、など)、StringDate、そしてListたり(またはプロキシタイプ)のSet

関連する問題