带分页的Java

带分页的Java,java,pagination,records,Java,Pagination,Records,我正在编写一个调用web服务的java客户机代码。当我调用一个客户端的web服务时,它会接受如下输入参数: KalturaFilterPager pager = new KalturaFilterPager(); pager.pageIndex = 1; pager.pageSize = 50; 因此,如果我有430条记录,我需要每次更改输入参数,如pageIndex=2pagesize=50,这样才能获得所有记录 现在我的要求是在一个页面中检索所有记录。我如何在不指定page

我正在编写一个调用web服务的java客户机代码。当我调用一个客户端的web服务时,它会接受如下输入参数:

KalturaFilterPager pager = new KalturaFilterPager();
    pager.pageIndex = 1;
    pager.pageSize = 50;
因此,如果我有430条记录,我需要每次更改输入参数,如pageIndex=2pagesize=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;
}
private静态字符串getMediaMetadata()引发异常,
IOException、ParserConfiguration异常、SAXException{
getKalturaClient();
字符串country=null;
KalturaMediaService=client.getMediaService();
System.out.println(“获得mediaservice”+mediaservice);
KalturaMediaEntryFilter=新的KalturaMediaEntryFilter();
KalturaFilterPager=新的KalturaFilterPager();
pager.pageIndex=1;
pager.pageSize=50;
KalturaMediaListResponse=mediaService.list(过滤器,
寻呼机);
如果(mediaResponse.totalCount>0){
System.out.println(“mediaResponse.totalCount”
+mediaResponse.totalCount);
//pager.pageSize=mediaResponse.objects;
List mediaEntriesList=mediaResponse.objects;
if(mediaEntriesList!=null&&mediaEntriesList.size()>0){
对于(int i=0;i”
+mediateEntriesList.size());
KalturaMediaEntry媒体=mediaEntriesList.get(i);
如果(媒体!=null){
System.out.println(“媒体ID-->”+媒体ID);
KalturaMetadataListResponse metadataResp=getMetadata(media.id);
如果(metadataResp!=null&&metadataResp.totalCount>0){
System.out.println(“获取元数据响应”
+metadataResp.totalCount);
列出metadataObjs=metadataResp.objects;
if(metadataObjs!=null&&metadataObjs.size()>0){
System.out.println(“获得MetaDAOBJ”);
对于(int j=0;j”
+元数据);
字符串xml=metadata.xml;
if(xml!=null){
系统输出
.println(“xml非空---------------->”
+xml);
country=parseXml(xml);
如果(国家/地区!=null){
系统输出
.println(“国家值---------------->”
+国家);
}
}
}
}
}
}
}
}
}
}
返回国;
}

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

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

读取该web服务的文档读取该web服务的文档我有相同的方法,该方法不接受任何参数并返回总计数。我调用了这个方法,然后将该值和设置赋给pager对象,然后再次调用该方法:pager.pageSize=mediaResponse.objects.size();pager.pageIndex=1;KalturaMediaListResponse resp=mediaService.list(过滤器、寻呼机);但是仍然在for循环中,它只显示30条记录,这是默认的页面记录大小。一些API为pageSize定义了一个最大大小。试着找出你的案子的最高限额是多少。你为什么不试试75、100、125、150、200等页面大小,看看是否会有差异?谢谢你的回复。这没有任何要设置和检索的最大大小。我试着将50设置为pageSize,将1,2,3,4,5等设置为pageIndex。这很好用。但是我想迭代循环中的所有对象,并进行一些其他处理。这就是它失败的地方。我有相同的方法,它不接受任何参数并返回总计数。我调用了这个方法,然后将该值和设置赋给pager对象,然后再次调用该方法:pager.pageSize=mediaResponse.objects.size();pager.pageIndex=1;KalturaMediaListResponse resp=mediaService.list(过滤器、寻呼机);但是仍然在for循环中,它只显示30条记录,这是默认的页面记录大小。一些API为pageSize定义了一个最大大小。试着找出你的案子的最高限额是多少。你为什么不试试75、100、125、150、200等页面大小,看看是否会有差异?谢谢你的回复。这没有任何要设置和检索的最大大小。我试着将50设置为pageSize,将1,2,3,4,5等设置为pageIndex。这很好用。但是我想迭代循环中的所有对象,并进行一些其他处理。这就是它失败的地方。