pom.xml
<!-- 分页 -->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>5.1.8</version>
</dependency>
spring.xml
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"></property>
<property name="configLocation" value="classpath:mybatis.xml"></property>
<property name="mapperLocations" value="classpath:com/fs/mapper/**/*.xml"></property>
<property name="plugins">
<array>
<bean class="com.github.pagehelper.PageInterceptor">
<!-- 这里的几个配置主要演示如何使用,如果不理解,一定要去掉下面的配置 -->
<property name="properties">
<value>
helperDialect=mysql
reasonable=true
</value>
</property>
</bean>
</array>
</property>
</bean>
前端
<!-- 得到每页列表内容 -->
<c:forEach items="${page.list}" var="question">
</c:forEach>
<!-- 分页(模仿百度搜索页面的跳页逻辑) -->
<div align="center">
<nav aria-label="Page navigation">
<ul class="pagination">
<li><a href="<%=basePath%>exam/questionList?currentPage=1&pageSize=${page.pageSize}">首页</a></li>
<li><a
href="<%=basePath%>exam/questionList?currentPage=${page.pageNum-1}&pageSize=${page.pageSize}"
aria-label="Previous"> <span aria-hidden="true">«</span>
</a></li>
<c:set var="num" value="${10}"></c:set>
<c:set var="mid" value="${Math.floor(num/2)+1}"></c:set>
<c:set var="startNum" value="${page.pageNum-(mid-1)}"></c:set>
<c:set var="endNum" value="${startNum+(num-1)}"></c:set>
<c:if test="${page.pages<=num}">
<c:set var="startNum" value="${1}"></c:set>
<c:set var="endNum" value="${page.pages}"></c:set>
</c:if>
<c:if test="${page.pages>num}">
<c:if test="${startNum<1}">
<c:set var="startNum" value="${1}"></c:set>
<c:set var="endNum" value="${startNum+(num-1)}"></c:set>
</c:if>
<c:if test="${endNum>page.pages}">
<c:set var="startNum" value="${page.pages-(num-1)}"></c:set>
<c:set var="endNum" value="${page.pages}"></c:set>
</c:if>
</c:if>
<c:forEach begin="${startNum}" end="${endNum}" varStatus="i">
<li id="${i.index}"><a
href="<%=basePath%>exam/questionList?currentPage=${i.index}&pageSize=${page.pageSize}">${i.index}</a></li>
</c:forEach>
<li><a
href="<%=basePath%>exam/questionList?currentPage=${page.pageNum+1}&pageSize=${page.pageSize}"
aria-label="Next"> <span aria-hidden="false">»</span>
</a></li>
<li><a
href="<%=basePath%>exam/questionList?currentPage=${page.pages}&pageSize=${page.pageSize}">尾页</a></li>
<li><a id="toPage">GO</a></li><li><input id="pages" style="height: 31px;width: 50px;" type="text" value="" "setPage()"/></li>
</ul>
</nav>
</div>
<script type="text/javascript">
//当前页数选中状态
$(function() {
$("#" + ${page.pageNum}).addClass("active");
})
//指定页面跳转
function setPage() {
var pages = $("#pages").val();
$("#toPage").prop("href","<%=basePath%>exam/questionList?currentPage=" + pages + "&pageSize=${page.pageSize}");
}
</script>
后端
//控制层
@RequestMapping(value = "questionList")
public String questionList(@RequestParam(value = "currentPage", defaultValue = "1") int currentPage,
@RequestParam(value = "pageSize", defaultValue = "8") int pageSize,Map map) {
examService.questionList(currentPage, pageSize, map);
return "system/questionList";
}
//业务层
@Override
public void questionList(int currentPage,int pageSize,Map map) {
PageHelper.startPage(currentPage, pageSize);
List<ExamQuestion> questions = examQuestionMapper.queryAllQuestion();
PageInfo<ExamQuestion> page = new PageInfo<>(questions);
map.put("page", page);
}