1. 程式人生 > >PageHelper 分頁外掛只用Page、不用PageInfo 的寫法

PageHelper 分頁外掛只用Page、不用PageInfo 的寫法

PageHelper 分頁外掛,學到的寫法是得到Page 物件後再轉成PageInfo 物件,但Page 是ArrayList 的子類,裡面包含了資料列表和分頁資訊,為什麼不能直接用Page 物件做分頁呢?問題只是如何在頁面取出Page 中資料。經過多次嘗試,終於驗證這個想法是可行的。

0)環境:SpringMVC + Spring + MyBatis。

1)mybatis 配置檔案新增PageHelper 外掛資訊。

	<plugins>
		<plugin interceptor="com.github.pagehelper.PageHelper">
			<property name="dialect" value="mysql"/>
            <!--reasonable 預設false,設為true 時,當pageNum(當前頁) 小於1時,會自動為其賦值為1。-->
            <property name="reasonable" value="true"/>
		</plugin>
	</plugins>

2)Service 實現類,直接返回Page 物件。

    PageHelper.startPage() 的兩個引數:pageNum (當前頁) 通過第一步的配置完成初始化;pageSize (每頁展示條數) 可以放到常量介面類(放utils 包) 裡面。

@Override
	public Page<User>  getUserPage(Page<User> page) {
		PageHelper.startPage(page.getPageNum(), 3);
		return (Page<User>) userDao.getUserList();
	}

3)Controller 方法。此處方法形參Page<User> 直接就是外掛裡的Page 類。

  • 此處Page 類後面不寫<User> 的話,進入使用者列表頁面時瀏覽器會報一個奇怪的錯誤:Root Cause: java.lang.IllegalArgumentException: Cannot generate variable name for non-typed Collection parameter type,控制檯沒報錯資訊,Baidu Google 都找不到一樣的案例,最後自己發現是形參類不完整的問題。
        @Autowired
	private IUserService userService;

	@RequestMapping(value = "/getUserPage")
	public String getUserPage(Page<User> page, ModelMap map) {
		page = userService.getUserPage(page);
		map.put("page", page);
		map.put("url", "user/getUserPage?");
		return "userList";
	}

4)展示頁面,因為page 是ArrayList 的子類,直接把它作為List 來用即可。

<table border="1" class="layui-table">
	<tr>
		<td>id</td>
		<td>姓名</td>
		<td>密碼</td>
		<td>生日</td>
		<td>操作</td>
	</tr>
	
	<c:forEach items="${page}" var="user">
		<tr>
			<td>${user.id}</td>			
            <td>${user.name}</td>
			<td>${user.password}</td>
			<td>${user.birthday}</td>
			<td>
				<a href="#">編輯</a>
				<a href="#">刪除</a>
			</td>
		</tr>
	</c:forEach>	
</table>
<jsp:include page="/common/page.jsp"/>

5)分頁頁面,用了layui 分頁外掛。關鍵在這裡:Page 物件裡含有分頁資訊,但因為它又是List,直接用${page.total} 這種寫法是取不到分頁資訊的,試了幾次,用下面程式碼寫法可行:${page.getTotal()}

PS: 還有一種用下標的EL 表示式寫法,不迴圈也能取到List 裡面實體資料的值:${page[0].id}

<html>
<head>
<base href="<%=request.getContextPath()+"/"%>">
<!-- 樣式檔案 -->
 <link rel="stylesheet" href="js/layui/css/layui.css" media="all">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<!-- js檔案 -->
<script src="js/layui/layui.js"></script>
<script>
layui.use('laypage', function(){
  var laypage = layui.laypage;
  
  //執行一個laypage例項
  laypage.render({
    elem: 'test1' //注意,這裡的 test1 是 ID,不用加 # 號
    ,count: "${page.getTotal()}" //資料總數,從服務端得到
    ,limit:"${page.getPageSize()}"
    ,curr:"${page.getPageNum()}"
    , layout: ['prev', 'page', 'next','count']
    ,jump: function(obj, first){ // 切換頁碼的時候呼叫
    	debugger
        //obj包含了當前分頁的所有引數,比如:
        console.log(obj.curr); //得到當前頁,以便向服務端請求對應頁的資料。
        console.log(obj.limit); //得到每頁顯示的條數
        
        //首次不執行
        if(!first){
        	location.href="${url}pageNum="+obj.curr
        }
      }
  });
});
</script>
</head>
<body>
<!-- 分頁導航條 -->
<div id="test1"></div>
</body>
</html>

相關推薦

PageHelper 外掛只用Page不用PageInfo寫法

PageHelper 分頁外掛,學到的寫法是得到Page 物件後再轉成PageInfo 物件,但Page 是ArrayList 的子類,裡面包含了資料列表和分頁資訊,為什麼不能直接用Page 物件做分頁呢?問題只是如何在頁面取出Page 中資料。經過多次嘗試,終於驗證這個想法

springboot2.0.5整合mybatis(PageHelper外掛generator外掛使用)

用IDEA搭建springboot2.0.5專案 選擇Spring initializr就可以輕鬆搭建一個springboot專案,第一次搭建很費時 在Group寫上公司域名,Artifact寫上專案名,打包用Jar 選Web勾選 SQL項,勾選MySQL

SpringBoot入門篇--整合mybatis+generator自動生成程式碼+druid連線池+PageHelper外掛

我們這一一篇部落格講的是如何整合Springboot和Mybatis框架,然後使用generator自動生成mapper,pojo等檔案。然後再使用阿里巴巴提供的開源連線池druid,這個連線池的好處我就不說了,集合了所有連線池的好處,並且還提供了監控等功能,加大了可擴充套件性等等。   1.&

Mybatis-PageHelper外掛

PageHelper.startPage 靜態方法呼叫  除了 PageHelper.startPage 方法外,還提供了類似用法的 PageHelper.offsetPage 方法。 在你需要進行分頁的 MyBatis 查詢方法前呼叫 PageHelper.startPage 靜態方法即可,緊跟在這個方

PageHelper外掛配合bootstrap和easyui的使用

我這兩種方式都是介紹的後端分頁也就是每次點選上一頁下一頁都會發送請求到後端進行分頁查詢,這樣的話對於大資料量的話效率不會低,前臺分頁的話就是把所有資料查到給前端,用前端外掛進行分頁,只請求一次,就不用寫pageHelper那些了,直接給前臺返回List<實體>就可以了,然後把前臺外掛,改

Springboot 使用PageHelper外掛實現

一、pom檔案中引入依賴 二、application.properties中配置以下內容 pagehelper.helper-dialect=mysqlpagehelper.reasonable=truepagehelper.support-methods-arguments=truepagehelp

pageHelper 外掛

<!-- pageHelper分頁外掛支援 --> <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper-spring

專案中PageHelper外掛的使用例項(SSM)

分頁(英語:Paging),是一種作業系統裡儲存器管理的一種技術,可以使計算機的主存可以使用儲存在輔助儲存器中的資料。作業系統會將輔助儲存器(通常是磁碟)中的資料分割槽成固定大小的區塊,稱為“頁”(pages)。當不需要時,將分頁由主存(通常是記憶體)移到輔助儲存器;當需要時

Spingboot+Mybatis優化 --- pagehelper外掛

第一步:pom檔案引入依賴 <!-- 分頁外掛 --> <dependency> <groupId>com.github.pagehelper</groupId>

SpringBoot入門筆記13——pageHelper外掛的使用

SpringBoot入門筆記14——pageHelper分頁外掛的使用 實現方式有好幾種,無非就是 spring的還是springboot的,是註解的還是配置的。 比如: 1、引入依賴 <!-- 分頁外掛依賴 --> ​ <dependency&g

springboot如何整合mybatis的pagehelper外掛

mybatis提供了一個非常好用的分頁外掛,之前整合的時候需要配置mybatis-config.xml的方式,今天我們來看下它是如何整合springboot來更好的服務的。 只能說springboot的強大之處真是不容小覷。 第一步:新增依賴 第二步:配置檔案簡單: 第三

PageHelper外掛及通用js

1.物理分頁 物理分頁依賴的是某一物理實體,這個物理實體就是資料庫,比如MySQL資料庫提供了limit關鍵字,程式設計師只需要編寫帶有limit關鍵字的SQL語句,資料庫返回的就是分頁結果。建議使用。 2.邏輯分頁 邏輯分頁依賴的是程式設計師編寫的程式碼。資料庫返回的不是分頁結果,而是全部資料,然

PageHelper外掛和easyUI實現

場景需求:舊版mybatis分頁的,要單獨寫一個獲取總數的方法和查詢一模一樣(早就看它不順眼),索性升級一下 。 。過程中也碰到了不少死衚衕(想把自己打死) 。但是使用很簡單……真的很簡單,請看這哥子的文章 。 說明:舊版是SpringMVC和mybatis,只是在

SpringBoot整合Mybatis-Plus和PageHelper外掛,附專案原始碼

1 pom.xml配置檔案 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3

PageHelper外掛使用

mybatis的分頁外掛jar包: 配置方法: 在mybatis配置檔案中加下面程式碼 1 <plugin interceptor="com.github.pagehelper.PageInterceptor"> 2 <!-- 設定資

mybatis使用PageHelper外掛原理

<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <!-- 注意

使用pagehelper外掛詳細教程

pagehelper是一個簡單的實現分頁技巧的外掛我們要使用這個外掛無可避免的需要引用它的jar包,你可以從下面的地址中下載最新版本的 jar 包 當然你也可以在maven中新增依賴 <dependency> <groupId>com

MyBatis攔截器原理及PageHelper外掛教學

閒來無事,特地整理了一下MyBatis攔截器實現分頁的原理。 地球人應該都知道要利用JDBC對資料庫進行操作,就需要一個statement物件,MyBatis也是如此。MyBatis在執行sql語句前會產生一個包含sql語句的Statement物件,而且對應的

pageHelper外掛使用以及 jsp 中資料處理(記錄)

使用pageHelper 分頁外掛可以很簡單的進行分頁展示,但一段時間不知道怎麼在前端對這些資料進行處理並展示 百度找了很久沒有沒有查到想要的結果,不斷摸索終於是完成了 (記錄一下) 引入jar包(jsqlparser-0.9.5.jar,pagehelper-4.1.

pageHelper外掛實現原理及使用方法

外掛官方網站:https://github.com/pagehelper/Mybatis-PageHelper/tree/master/src/main/java/com/github/pagehel