天天看點

springmvc中使用pageInfo工具來實作分頁查詢的簡單操作

在查詢較多資料的時候我們經常會用到分頁查詢,在浏覽器頁面上将查詢的結果一頁一頁的分開展示給我們,下面是我寫的一個使用pageInfo工具來完成簡單的分頁功能的步驟以及代碼:

1.首先是在我們的service層對dao層查詢出的資料進行分頁操作:

1.1先在service接口中添加上 pageNum,pageSize 這兩個參數,代表頁數以及每頁條數,該函數的傳回結果改為PageInfo<>:

1.2在service的實作類中加上 PageHelper.startPage(pageNum,pageSize);這句代碼,然後把查詢出來的集合放進 PageInfo 中并傳回

@Override
	public PageInfo<Students> getStuAll(Integer timeteach,Integer pageNum,Integer pageSize) {
		PageHelper.startPage(pageNum,pageSize);
		List<Students> list = teachMainDao.selectStuAll(timeteach,cnamecid,stuname);
		return new PageInfo<Students>(list);
	}
           

2.接下來是在controller層接收傳回結果,在這裡也需要添加上 pageNum,pageSize 這兩個參數,但是在這裡可以通過@RequestParam() 注解設定這兩個參數不是必須的并且修改預設值,在函數裡面把從service層接收的 PageInfo 集合存到request作用域中:

@RequestMapping("tostushow")
	public String stushow(String timeteach,HttpServletRequest req,
			@RequestParam(required=false,defaultValue="1") Integer pageNum,
			@RequestParam(required=false,defaultValue="3") Integer pageSize){
		PageInfo<Students> pg = teachMainService.getStuAll(timeteach,pageNum,pageSize);
		req.setAttribute("pg", pg);
		return "stushow";
	}
           

3.在前端頁面接收傳過來的集合周遊輸出,這裡要注意的一點是,如果是周遊pageInfo類型的集合,要使用它裡面的自帶的 .list 這個屬性來代表集合然後周遊輸出

<#list pg.list as tsl>
	<tr>
		<td>${tsl_index+1}</td>
		<td>${tsl.stuname}</td>
		<td>${tsl.stunum}</td>
		<td>${tsl.stusex}</td>		
		<td>${tsl.stuage}</td>
		<td>${tsl.clz.cname}</td>
		<td>${tsl.stuhome}</td>
		<td>${tsl.sturemarks}</td>
		<td>頭像縮略圖,點選放大</td>
	</tr>
</#list>
           

4.上一頁與下一頁功能的實作,設定上頁下頁的超連結按鈕,點選的時候跳轉到相應請求并且帶上 pageNum 這個參數,并且上頁下頁要對 pageNum 這個參數的值進行+1或者-1的操作,這樣就實作了分頁查詢的功能:

<#if pg.hasPreviousPage>
	<a href="/tostushow?pageNum=${pg.pageNum-1}">上一頁</a>
</#if>
<#if pg.hasNextPage>
	<a href="/tostushow?pageNum=${pg.pageNum+1}">下一頁</a>
</#if>