Java与分页

时间:2015-07-03 13:05:01

标签: java pagination records

我正在编写一个调用Web服务的java客户端代码。当我打电话给我的客户的某个Web服务时,它接受如下输入参数:

KalturaFilterPager pager = new KalturaFilterPager();
    pager.pageIndex = 1;
    pager.pageSize = 50;

所以如果我有430条记录,我需要每次更改输入参数,如pageIndex = 2 pageSize = 50,这样就可以获得所有记录。

现在我的要求是我想在一个页面中检索所有记录。如何在不指定pageSize = 431的情况下执行此操作,因为此记录编号将来可能会更改。

我的代码是:

private static String getMediaMetadata() throws KalturaApiException,
        IOException, ParserConfigurationException, SAXException {
    getKalturaClient();
    String country = null;
    KalturaMediaService mediaService = client.getMediaService();
    System.out.println("Got the mediaservice" + mediaService);
    KalturaMediaEntryFilter filter = new KalturaMediaEntryFilter();
    KalturaFilterPager pager = new KalturaFilterPager();
    pager.pageIndex = 1;
    pager.pageSize = 50;
    KalturaMediaListResponse mediaResponse = mediaService.list(filter,
            pager);
    if (mediaResponse.totalCount > 0) {
        System.out.println("mediaResponse.totalCount"
                + mediaResponse.totalCount);
        // pager.pageSize = mediaResponse.objects;
        List<KalturaMediaEntry> mediaEntriesList = mediaResponse.objects;
        if (mediaEntriesList != null && mediaEntriesList.size() > 0) {
            for (int i = 0; i < mediaEntriesList.size(); i++) {
                System.out.println("mediaEntriesList.size()-------->"
                        + mediaEntriesList.size());
                KalturaMediaEntry media = mediaEntriesList.get(i);
                if (media != null) {
                    System.out.println("Media ID -------->" + media.id);
                    KalturaMetadataListResponse metadataResp = getMetadata(media.id);
                    if (metadataResp != null && metadataResp.totalCount > 0) {
                        System.out.println("Got the metadataResp"
                                + metadataResp.totalCount);
                        List<KalturaMetadata> metadataObjs = metadataResp.objects;
                        if (metadataObjs != null && metadataObjs.size() > 0) {
                            System.out.println("got the metadaobjs");
                            for (int j = 0; j < metadataObjs.size(); j++) {
                                KalturaMetadata metadata = metadataObjs
                                        .get(j);
                                if (metadata != null) {
                                    System.out
                                            .println("metadata not null --------->"
                                                    + metadata);
                                    String xml = metadata.xml;
                                    if (xml != null) {
                                        System.out
                                                .println("xml not null --------->"
                                                        + xml);
                                        country = parseXml(xml);
                                        if (country != null) {
                                            System.out
                                                    .println("Country Value --------->"
                                                            + country);
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
    return country;
}

1 个答案:

答案 0 :(得分:0)

有没有办法在实际获取记录之前获取记录总数?有这样的API吗?如果是这样,请先调用该值作为页面大小。