GWT RequestFactory中的客户端参数

时间:2011-09-15 07:04:57

标签: gwt parameters requestfactory

我正在使用GWT RequestFactory并希望在服务中传输客户端参数。 应在客户端上创建参数,因为它们不是域模型的一部分,不会存储在数据库中。 不幸的是我没有办法做到这一点,因为只有xxxProxy对象可以用作参数,它们只能在服务器上创建。

我的具体例子:

我想从服务器下载任务,并希望发送带有请求作为参数的过滤器对象,该参数指定要加载的任务对象。

感谢您的帮助!

1 个答案:

答案 0 :(得分:3)

您可以使用create()的{​​{1}}方法在客户端上创建代理。在您的情况下,您的代理必须是RequestContext而不是ValueProxy。您不必“存储”值代理(与实体代理相反)。

我确实拥有与您完全相同的用例,并且效果非常好。

EntityProxy

...

@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
}

作为旁注,你写道“只有xxxProxy对象可以用作参数”,这是错误的;你可以很好地使用原始类型(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) { // ... } }); int等),它们的包装类型(booleanInteger等),BooleanString,以及DateList(或代理类型)。