Spring boot + Thymeleaf + Semantic UI implement a simple pagination

Controller:

    @RequestMapping(value="/home", method=RequestMethod.GET)
	public String getHomePage(Model model, 
			@RequestParam(value="page", defaultValue = "0") Integer pageIndex,
			@RequestParam(value="pageSize", defaultValue = "10") Integer pageSize){
		
		Sort sort = new Sort(Direction.ASC, "id");
		Pageable pageable = new PageRequest(pageIndex, pageSize, sort);
		Page<User> pageUser = userRepository.findAll(pageable);
		model.addAttribute("users", pageUser.getContent());
		model.addAttribute("pageIndex", pageable.getPageNumber());
		model.addAttribute("pageSize", pageable.getPageSize());
		model.addAttribute("isFirst", pageUser.isFirst());
		model.addAttribute("isLast", pageUser.isLast());
		model.addAttribute("hasPrevious", pageUser.hasPrevious());
		model.addAttribute("hasNext", pageUser.hasNext());
		model.addAttribute("totalPages", pageUser.getTotalPages());
		return "home";		
	}

View page:

<nav>
	<div class="ui pagination stackable menu pagination-centered">
		<a th:class="'item ' + (${isFirst} ? 'disabled' : '')" href="#" th:href="@{/home(page=0)}">First</a> 
		<a th:class="'item ' + (${hasPrevious} ? '' : 'disabled')" href="#" th:href="@{/home(page=(${pageIndex}-1 lt 0 ? 0 : ${pageIndex-1}))}"> Previous </a>
		<div class="item" th:text="${pageIndex+1}+'/'+${totalPages}">1</div>
		<a th:class="'item ' + (${hasNext} ? '' : 'disabled')" href="#" th:href="@{/home(page=(${pageIndex+1} gt ${totalPages} ? ${totalPages} : ${pageIndex+1}))}"> Next </a>
		<a th:class="'item '+ (${isLast} ? 'disabled' : '')" href="#" th:href="@{/home(page=${totalPages-1})}">Last</a>
	</div>
</nav>

Result:

This is a simple method to implement a pagination function. Just using 'Pageable' and 'Page' of Spring, not need to integrate with other templates.

If you have any issues, please add a comment, thanks. Good luck!

转载于:https://my.oschina.net/ayyao/blog/847895

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值