GWT Requestfactory粗粒度包装对象

时间:2013-10-09 20:14:00

标签: gwt requestfactory

目前在我的应用程序中,我们正在使用GWT RequestFactory。我们有多个EntityProxy。一对finder方法从服务层返回List。由于我们在应用程序中使用分页,因此我们在List中返回预配置数量的EntityProxy。我们还需要EntityProxy的总数来显示我们正在单独请求的分页UI。我们想要创建一些包装器对象,它将List和totalRecord计数封装在单个类中。因此,在单个请求中,我们可以获得List和记录计数。使用requestfactory做什么最好?注意:我是GWT RequestFactory的初学者。

2 个答案:

答案 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接口。