我们如何在Spring中创建分页链接?

我们如何在Spring中创建分页链接?,spring,jsp,pagination,Spring,Jsp,Pagination,我可以只做静态操作,而不需要获取页面总数,但我们通常不是这样做的 <a href="${pageContext.request.contextPath}/posts?page=1">1</a> <a href="${pageContext.request.contextPath}/posts?page=2">2</a> <a href="${pageContext.request.contextPath}/posts?page=3">3

我可以只做静态操作,而不需要获取页面总数,但我们通常不是这样做的

<a href="${pageContext.request.contextPath}/posts?page=1">1</a>
<a href="${pageContext.request.contextPath}/posts?page=2">2</a>
<a href="${pageContext.request.contextPath}/posts?page=3">3</a>


所以我想知道在JSP上创建分页链接的最佳方法是什么。我只使用JSP、Spring和Hibernate,因此不需要其他任何东西的方法将受到欢迎。

为了创建带编号的页面链接,通常需要事先了解正在分页的内容的总数以及页面的呈现大小。使用这两段数据,您可以轻松地构建链接

诸如
DisplayTag
之类的库使用页面大小和对象列表,使用简单的JSP标记绘制链接


所有这些都与春天和冬眠无关。只有当您希望通过执行计数查询并结合根据页面大小和页码仅获取特定页面数据的查询来优化数据获取时,才需要在Hibernate的法庭上小心操作。

我们可以将两个查询合并为一个查询?我本来想做两个查询,但我认为这样做性能不好,所以我在做任何事情之前犹豫了很久。@jarvan如果您不介意将自己绑定到Hibernate的
滚动结果
,您可以使用它前进到感兴趣的第一行,获得下一页大小的行数,然后,如果必须在一个查询中执行此操作,则将结果的结尾提前以获取查询的行数。如果您必须遵守JPA规范而不使用Hibernate专有选项,那么2个查询是您唯一的选择。根据您的数据模型,2查询方法可以更快。此外,如果可以在服务层中提交并行查询,则可以同时获取计数和数据。