我在Struts基础应用程序中使用displaytag 1.0。我有500万行来显示所有行数据的报告,通过50个记录进行分页。渲染数据需要5分钟。我们可以减少这个吗?请在一分钟内建议如何使用。
答案 0 :(得分:0)
显然将完整的数据库拖入Java的内存而不仅仅是感兴趣的数据(当前页面)。您需要在DAO级别引入基于请求的分页。
首先,在您的DAO课程中,根据所使用的数据库执行SELECT stuff FROM data LIMIT firstrow OFFSET rowcount
或类似的操作。然后在您的JSP中,在JSTL c:forEach
或Struts'logic:iterate
的帮助下自己创建一个HTML表。在后台的input type="hidden"
元素中保留一个或两个请求参数:要显示的第一行(第一行)以及最终要一次显示的行数(rowcount)。最后提供一组按钮,指示服务器端代码每次都使用firstrow
进/出rowcount
。算一算吧。
您可以找到更详细的答案here。