1、首先创建dto下的分页类PageBean
package com.zzz.blog.dto;import java.util.List;public class PageBean {private Integer pageSize; private Integer currentPage; private Integer totalCount; private Integer totalPage; private List list; public PageBean(Integer currentPage, Integer totalCount, Integer pageSize) {this.pageSize = pageSize;this.currentPage = currentPage;this.totalCount = totalCount;if(this.currentPage == null) {this.currentPage = 1;}if(this.pageSize == null) {this.pageSize = 5;}this.totalPage = (int) Math.ceil(1.0 * this.totalCount / this.pageSize);if(this.currentPage > this.totalPage) {this.currentPage = this.totalPage;}if(this.currentPage < 1) {this.currentPage = 1;}}public Integer getStart() {return (this.currentPage-1)*this.pageSize;}
}
2、在查询请求中返回PageBean
@Autowiredprivate MessageService messageService;@RequestMapping("/findAllMessage") public ModelAndView findAllMessage(Integer currentPage,Model model) {PageBean messagePageBean = messageService.getMessagePageBean(currentPage);model.addAttribute("messagePageBean", messagePageBean);return new ModelAndView("/gustbook", "messageModel", model);}
3、实现getMessagePageBean方法和完成jpa的crud接口
package com.zzz.blog.service;import...@Component
public class MessageServiceImpl implements MessageService{@Autowiredprivate MessageRepository messageRepository;...@Override public PageBean getMessagePageBean(Integer currentPage) {Integer totalCount = messageRepository.findAllMessageNum();PageBean pageBean = new PageBean(currentPage, totalCount, 5);List<Message> list = messageRepository.getMessagePageList(pageBean.getStart(),pageBean.getPageSize());pageBean.setList(list);return pageBean;}}
package com.zzz.blog.repository;import ...import com.zzz.blog.domain.Message;public interface MessageRepository extends CrudRepository<Message, Long>{@Query(value="select count(*) from message",nativeQuery = true)Integer findAllMessageNum();@Query(value="select * from message limit ?1,?2",nativeQuery = true)List<Message> getMessagePageList(Integer start, Integer pageSize);}
4、前端接收参数
<li th:each="message:${messagePageBean.list}">
...
<img th:src="${message.visitor.image}">
...
</li>