目前在我的应用程序中,我们正在使用GWT RequestFactory。我们有多个EntityProxy。一对finder方法从服务层返回List。由于我们在应用程序中使用分页,因此我们在List中返回预配置数量的EntityProxy。我们还需要EntityProxy的总数来显示我们正在单独请求的分页UI。我们想要创建一些包装器对象,它将List和totalRecord计数封装在单个类中。因此,在单个请求中,我们可以获得List和记录计数。使用requestfactory做什么最好?注意:我是GWT RequestFactory的初学者。
答案 0 :(得分:2)
Umit的答案是完全正确的。我只会添加一个抽象处理分页的图层。当您使用BasicTables和BasicLists通过相同的接口PageProxy处理所有数据时(例如,用于分页),这非常有用
public interface PaginationInfo extends ValueProxy {
public int getTotalRecords();
//either have the manual page info
public int getPageNumber();
//or use the count API on GAE (returned by your db request as a web safe String)
public String getCount();
}
public interface PageProxy extends ValueProxy {
public PaginationInfo getPageInfo();
}
public interface MyEntityProxy extends EntityProxy {}
public interface MyEntityPageProxy extends PageProxy {
public List<MyEntityProxy> getEntities();
}
答案 1 :(得分:1)
你可以沿着这条线使用:
public interface MyEntityProxy extends EntityProxy {}
public interface MyEntityPageProxy extends ValueProxy {
public List<MyEntityProxy> getEntities();
public int getTotalRecords();
}
最好使用通用的PageProxy
界面(例如MyEntityPageProxy<T extends EntityProxy>
),但由于此bug,这是不可能的,或者至少只能通过解决方法。
因此,对于希望拥有Paginationsupport的每个EntityProxy
,您必须创建一个单独的PageProxy
接口。