我很难理解我的服务类应该如何编写才能实现 GXT 分页RequestFactory
我按照Demo 站点中提供的示例,以及 Sencha 网站中给出的javadoc 示例,但未能完全理解两者。
首先让我们说我的服务正在返回List<Data>
(Data
是一个服务器 POJO),它需要以分页方式加载。
这是我的服务类,它公开了一个分页方法
class BackendService {
public List<Data> getData(int pageNumber, int pageSize) {
int f = pageNumber * pageSize;
int l = f + pageSize;
if(f > 0 && l < datas.size()) {
return datas.subList(f, l);
}
return null;
}
}
RequestFactory
看起来像这样
@Service(value=BackendService.class, locator=BackendServiceLocator.class)
interface BackendRequestContext extends RequestContext {
Request<List<DataProxy>> getData(int pageNumber, int pageSize);
}
BackendRequestContext context();
}
分页Grid
期望DataProxy
实现如下
DataProxy<PagingLoadConfig, PagingLoadResult<com.emc.test.client.model.DataProxy>> proxy = new RequestFactoryProxy<PagingLoadConfig, PagingLoadResult<com.emc.test.client.model.DataProxy>>() {
@Override
public void load(PagingLoadConfig loadConfig, Receiver<? super PagingLoadResult<com.emc.test.client.model.DataProxy>> receiver) {
int pageNum = loadConfig.getOffset();
int pageSize = loadConfig.getLimit();
Request<List<com.emc.test.client.model.DataProxy>> request = backendRequestFactory.context().getData(pageNum, pageSize);
request.fire(receiver);
}
};
在上述load
方法中,这一行给出了编译错误
request.fire(receiver);
因为Receiver
预计会
Receiver<? super PagingLoadResult<com.emc.test.client.model.DataProxy>>
谁能帮我关于
- 我应该如何实现服务方法?
- 我应该返回
PagingLoadResult
而不是List
从服务本身返回吗?如果是怎么办?
感谢您在此线程上的时间!