【问题标题】:client parameters in GWT RequestFactoryGWT RequestFactory 中的客户端参数
【发布时间】:2011-09-15 16:03:51
【问题描述】:

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

我的具体例子:

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

感谢您的帮助!

【问题讨论】:

  • 嗨斯特凡。如果解决了您的问题,请将 Thomas 的答案标记为正确。反馈使 stackoverflows 不断转动。

标签: gwt parameters requestfactory


【解决方案1】:

您可以使用RequestContextcreate() 方法在客户端上很好地创建代理。在您的情况下,您的代理必须是 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
}

...

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 等)、StringDateList 或 @ 987654334@ 个(或代理类型)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多