SpringBoot+Thymeleaf分页 使用PageHelper实现分页

4 篇文章 0 订阅

pom.xml

首先在项目pom.xml中加入pagehelper插件的依赖

<!--pagehelper分页插件 -->
<dependency>
   <groupId>com.github.pagehelper</groupId>
   <artifactId>pagehelper-spring-boot-starter</artifactId>
   <version>1.2.5</version>
</dependency>

Controller

@Controller
@RequestMapping("/chat")
public class LeaveMessageController extends BaseController {
	@Autowired
	private LeaveMessageService leaveMessageService;
	
	
	/**
	 * 
	* @Title: LeaveMessage
	* @author lizheng
	* @param pageSize 一页显示多少条-非必传值
	* @param pageNum 显示当前页--必传值
	* @ToDo: 
	* @Description: 
	* @date 2020年9月02日
	 */
	@GetMapping("/leaveMessage")
	String LeaveMessage(Model model,@RequestParam(required = false,defaultValue="1",value="pageNum")Integer pageNum,@RequestParam(defaultValue="10",value="pageSize")Integer pageSize){
		Map<String, Object> map = new HashMap<String, Object>();
		//为了程序的严谨性,判断非空:
	    if(pageNum == null){
	        pageNum = 1;   //设置默认当前页
	    }
	    if(pageNum <= 0){
	        pageNum = 1;
	    }
	    if(pageSize == null){
	        pageSize = 10;    //设置默认每页显示的数据数
	    }
	    
	    //1.引入分页插件,pageNum是第几页,pageSize是每页显示多少条,默认查询总数count
	    PageHelper.startPage(pageNum,pageSize);
	    
	    //2.紧跟的查询就是一个分页查询-必须紧跟.后面的其他查询不会被分页,除非再次调用PageHelper.startPage
	    List<Map<String,Object>> leaveMessageList = leaveMessageService.list(map);
        
        //3.使用PageInfo包装查询后的结果,5是连续显示的条数,结果list类型是Page<E>
        PageInfo pageInfo = new PageInfo(leaveMessageList,pageSize);
        
        //4.使用model/map/modelandview等带回前端
        model.addAttribute("pageInfo",pageInfo);
        
	    return "chat/leaveMessage/leaveMessage";
	}
}

html

<!--分页-->
<div class="modal-footer no-margin-top">
	<div class="col-md-6 col-xs-8 col-xs-offset-1">
		当前第 [[${pageInfo.pageNum}]]页,共 [[${pageInfo.pages}]] 页, 共 [[${pageInfo.total}]] 条记录
	</div>
 
	<ul class="pagination pull-right no-margin">
		<li>
			<a th:href="'/chat/leaveMessage?pageNum=1'">首页</a>
		</li>
		<li class="prev" th:if="${pageInfo.hasPreviousPage}">
			<a th:href="'/chat/leaveMessage?pageNum='+${pageInfo.prePage}">
				<i class="ace-icon fa fa-angle-double-left"></i>
			</a>
		</li>
		<!--遍历条数-->
			<li th:each="nav:${pageInfo.navigatepageNums}">
				<a th:href="'/chat/leaveMessage?pageNum='+${nav}" th:text="${nav}" th:if="${nav != pageInfo.pageNum}"></a>
				<span style="font-weight: bold;background: #6faed9;" th:if="${nav == pageInfo.pageNum}" th:text="${nav}" ></span>
			</li>
 
		<li class="next" th:if="${pageInfo.hasNextPage}">
			<a th:href="'/chat/leaveMessage?pageNum='+${pageInfo.nextPage}">
				<i class="ace-icon fa fa-angle-double-right"></i>
			</a>
		</li>
		<li>
			<a th:href="'/chat/leaveMessage?pageNum='+${pageInfo.pages}">尾页</a>
		</li>
	</ul>
</div>

 

  • 3
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值