使用JavaWeb服务动态填充表将返回

使用JavaWeb服务动态填充表将返回,java,jquery,web-services,datatable,Java,Jquery,Web Services,Datatable,我试图根据我们从web服务获得的值实现一个基本的web应用程序,它将包括两个数据表,每个数据表都需要在服务器端填充 例如,web服务有这样一个结构,假设这些是书 首先,我获取要获取信息的对象的字符串GUID值,然后,我向服务发送带有此GUID参数的请求,以获取这些图书对象的信息XML,其中包括名称、页面和作者 但作为一个重要信息,我的servlet需要在datatable页面更改后立即动态获取这些值,如果此datatable包含30本书,我将首先获取30个guid,以便我可以澄清,在这之后,发送

我试图根据我们从web服务获得的值实现一个基本的web应用程序,它将包括两个数据表,每个数据表都需要在服务器端填充

例如,web服务有这样一个结构,假设这些是书

首先,我获取要获取信息的对象的字符串GUID值,然后,我向服务发送带有此GUID参数的请求,以获取这些图书对象的信息XML,其中包括名称、页面和作者

但作为一个重要信息,我的servlet需要在datatable页面更改后立即动态获取这些值,如果此datatable包含30本书,我将首先获取30个guid,以便我可以澄清,在这之后,发送一个请求,要求其中10个在datatable的第一页上显示,如果用户单击第二页,后面的服务器需要发送对另一组10的请求,并返回结果以显示在表上

我尝试实现以下结构:

但它用数据存储库填充一个表,其中包含所有的数据,所以从这个角度来看,我不能完全按照我的要求动态地使用它

对于这一点的主要需求是,许多对象的XML返回需要很长的时间

那么,你知道有什么样的链接或教程需要这样做吗


提前感谢您的信息

@Hayra,感谢您提供JQuery DataTable示例的代码项目链接,它非常有用。这是我可能很快就会实施的事情

从这个示例中我了解到,jquerydatatable跟踪特定的参数,这些参数允许您返回准确的记录数。您需要的特定参数是iDisplayStart和iDisplayLength。当用户指定每页10条记录时设置iDisplayLength,当页码更改时设置iDisplayStart

请看代码项目示例doGet方法中的代码,这部分代码只将记录的子集返回到表中

JQueryDataTableParamModel param = DataTablesParamUtility.getParam(request);
        if(companies.size()< param.iDisplayStart + param.iDisplayLength) {
            companies = companies.subList(param.iDisplayStart, companies.size());
        } else {
            companies = companies.subList(param.iDisplayStart, param.iDisplayStart + param.iDisplayLength);
        }

        try {
            JsonObject jsonResponse = new JsonObject();         
            jsonResponse.addProperty("sEcho", sEcho);
            jsonResponse.addProperty("iTotalRecords", iTotalRecords);
            jsonResponse.addProperty("iTotalDisplayRecords", iTotalDisplayRecords);

            for(Company c : companies){
                JsonArray row = new JsonArray();
                row.add(new JsonPrimitive(c.getName()));
                row.add(new JsonPrimitive(c.getAddress()));
                row.add(new JsonPrimitive(c.getTown()));
                data.add(row);
            }
            jsonResponse.add("aaData", data);

            response.setContentType("application/Json");
            response.getWriter().print(jsonResponse.toString());

        } catch (JsonIOException e) {
            e.printStackTrace();
            response.setContentType("text/html");
            response.getWriter().print(e.getMessage());
        }

我希望这有助于

@Hayra,我刚刚实现了jQuery.datatable插件,如果表30到100中有少量记录要显示,那么您似乎不需要经历实现doGet方法的麻烦。建议记录数量较多时使用。我所做的只是下载jquery.datatables.min.js和jquery.datatables.css,并添加了以下内容:对不起,我点击了return$document.readyfunction{$'t01'.DataTable;};其中t01是我的表id。它工作得很好,每个页面只显示10条记录。首先感谢您的回答,但我实际上了解了它的工作原理,即使在示例中,它以10乘10的方式显示,但它一次填充表id,它首先获得所有结果,然后在表上显示。它以一种静态的方式工作。。。我的观点是在服务器上10乘10得到结果,并根据这些文件给出json。表知道它将有30个条目,并创建3个页面。但每个页面都将动态填充。它在处理web服务客户端请求时也会处理。。。