springboot+jpa分頁(Pageable+Page)


Pageable+Page實現分頁無需配置,也不需要加入jar包(maven依賴)

Controller控制層

package com.gxuwz.late.controller;

import com.gxuwz.late.bean.Record;
import com.gxuwz.late.repository.RecordRepository;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;

import javax.servlet.http.HttpServletResponse;

@Controller
@RequestMapping("/manager")
public class ManagerController {
    static Logger logger = LoggerFactory.getLogger(ManagerController.class);

    @Autowired
    RecordRepository recordRepository;

    @RequestMapping("/list")
    public String list(HttpServletResponse response, Model model, Integer pageNum){
                       
        if (pageNum == null){
            pageNum = 1;
        }
     // 排序方式,這里是以“recordNo”為標准進行降序 Sort sort
= new Sort(Sort.Direction.DESC, "recordNo"); // 這里的"recordNo"是實體類的主鍵,記住一定要是實體類的屬性,而不能是數據庫的字段 Pageable pageable = new PageRequest(pageNum - 1, 6, sort); // (當前頁, 每頁記錄數, 排序方式) Page<Record> list = recordRepository.findAll(pageable); logger.info("pageNum==" + pageNum); model.addAttribute("pageInfo", list); response.addHeader("x-frame-options","SAMEORIGIN"); // 允許iframe return "record_list"; } }

html頁面

      <table id = "table" class="table table-hover text-center">
              <tr>
                <th>晚歸記錄編號</th>
                <th>宿舍樓編號</th>
                <th>宿舍號</th>
                <th>學號</th>
                <th>班級</th>
                <th>輔導員</th>
                <th>晚歸時間</th>
                <th>晚歸原因</th>
                <th>操作</th>
              </tr>
          
     <!--  pageInfo.getContent() 返回的是一個list      -->
                <tr th:each="record:${pageInfo.getContent()}">
                    <td th:text="${record.recordNo }"></td>
                    <td th:text="${record.buildingNo }"></td>
                    <td th:text="${record.dorId }"></td>
                    <td th:text="${record.studentNo }"></td>
                    <td th:text="${record.className }"></td>
                    <td th:text="${record.instName }"></td>
                    <td th:text="${record.time }"></td>
                    <td th:text="${record.reason }"></td>
                </tr>
                  <tr>
                    <td colspan="8">
                        <div class="pagelist">
                            <p>當前<span th:text="${pageInfo.getNumber()} + 1"></span>頁,總<span th:text="${pageInfo.totalPages}"></span>頁
                 共<span th:text="${pageInfo.totalElements}"></span>條記錄 
                            <a th:href="@{/manager/list}">首頁</a>
                            <a th:href="@{/manager/list(pageNum = ${pageInfo.hasPrevious()} ? ${pageInfo.getNumber() } : 1)}">上一頁</a>
                            <a th:href="@{/manager/list(pageNum = ${pageInfo.hasNext()} ? ${pageInfo.getNumber()} + 2 : ${pageInfo.totalPages})}">下一頁</a>
                            <a th:href="@{/manager/list(pageNum = ${pageInfo.totalPages})}">尾頁</a></p>
                        </div>

                    </td>
              </tr>
            </table>

 

實現效果:

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM