效果
Pom
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.2.5</version>
</dependency>
Propertis
pagehelper.helper-dialect=mysql
pagehelper.params-count=countSql
pagehelper.reasonable=true
pagehelper.support-methods-arguments=true
Controller
@RequestMapping("/toNews")
public String toNews(@RequestParam(value = "pageNum",defaultValue = "1") Integer pageNum,Model model) {
Page<Object> page = PageHelper.startPage(pageNum, 4);
List<News> news = newsService.findLatestNews();
model.addAttribute("news",news);
model.addAttribute("page",page);
if (page.getPageNum()>3) {
int st=0;
if (page.getPageNum()>=page.getPages()) {
st=page.getPageNum()-2;
model.addAttribute("st",st);
}else if (page.getPageNum()+1>=page.getPages()) {
st=page.getPageNum()-1;
model.addAttribute("st",st);
}else if (page.getPageNum()+2>=page.getPages()) {
st=page.getPageNum();
model.addAttribute("st",st);
}
}else if (page.getPageNum()<=3) {
int st=1;
model.addAttribute("st",st);
}
System.out.println(page);
List<News> leftNews = new ArrayList<News>();
List<News> rightNews = new ArrayList<News>();
int i=0;
for(i=0;i<(news.size()/2);i++) {
leftNews.add(news.get(i));
}
for(int j=i;j<news.size();j++) {
rightNews.add(news.get(j));
}
model.addAttribute("rightNews",leftNews);
model.addAttribute("leftNews",rightNews);
return "news";
}
Html
<nav class="pagination-wrap" aria-label="Page navigation">
<ul class="pagination">
<li class="page-item page-item-control pre" th:if="${page.pageNum>1}"><a class="page-link link-svg" href="#" th:href="@{toNews(pageNum=${page.pageNum-1})}"aria-label="Previous">
<svg width="8" height="12" viewBox="0 0 8 12" xmlns="http://www.w3.org/2000/svg">
<path d="M6.29508 0L7.70508 1.41L3.12508 6L7.70508 10.59L6.29508 12L0.295078 6L6.29508 0Z"></path>
</svg></a>
</li>
<input type="hidden" id="pageNum"value="${page.pageNum}"/>
<input type="hidden" id="pages"value="${page.pages}"/>
<input type="hidden" id="st"value="${st}"/>
<li class="page-item"><a class="page-link" href="#" th:href="@{toNews(pageNum=${st})}" th:text="${st}">1</a></li>
<li class="page-item" ><a class="page-link" href="#" th:href="@{toNews(pageNum=${st+1})}" th:text="${st+1}">2</a></li>
<li class="page-item" ><a class="page-link" href="#" th:href="@{toNews(pageNum=${st+2})}" th:text="${st+2}">3</a></li>
<li class="page-item"><span class="page-link page-link-dis">...</span></li>
<li class="page-item pages"><a class="page-link" href="#" th:href="@{toNews(pageNum=${page.pages})}" th:text="${page.pages}">6</a></li>
<li class="page-item page-item-control nxt" th:if="${st+2} le ${page.pages-1}"><a class="page-link link-svg" href="#" th:href="@{toNews(pageNum=${page.pageNum+1})}" aria-label="Next">
<svg width="8" height="12" viewBox="0 0 8 12" xmlns="http://www.w3.org/2000/svg">
<path d="M1.70492 0L0.294922 1.41L4.87492 6L0.294922 10.59L1.70492 12L7.70492 6L1.70492 0Z"></path>
</svg></a>
</li>
</ul>
</nav>