PageHelper 分頁插件只用Page、不用PageInfo 的寫法

PageHelper 分頁插件粥脚,學(xué)到的寫法是得到Page 對象后再轉(zhuǎn)成PageInfo 對象,但Page 是ArrayList 的子類包个,里面包含了數(shù)據(jù)列表和分頁信息刷允,為什么不能直接用Page 對象做分頁呢?問題只是如何在頁面取出Page 中數(shù)據(jù)碧囊。經(jīng)過多次嘗試树灶,終于驗證這個想法是可行的。

0)環(huán)境:SpringMVC +?Spring + MyBatis糯而。

1)mybatis 配置文件添加PageHelper 插件信息天通。

<plugins>

<plugin interceptor="com.github.pagehelper.PageHelper">

<property name="dialect" value="mysql"/>

? ? ? ? ? ? <!--reasonable 默認(rèn)false,設(shè)為true 時熄驼,當(dāng)pageNum(當(dāng)前頁) 小于1時土砂,會自動為其賦值為1。-->

? ? ? ? ? ? <property name="reasonable" value="true"/>

</plugin>

</plugins>

2)Service?實現(xiàn)類谜洽,直接返回Page 對象萝映。

????PageHelper.startPage() 的兩個參數(shù):pageNum (當(dāng)前頁) 通過第一步的配置完成初始化;pageSize (每頁展示條數(shù)) 可以放到常量接口類(放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> 的話实束,進(jìn)入用戶列表頁面時瀏覽器會報一個奇怪的錯誤:Root Cause: java.lang.IllegalArgumentException: Cannot generate variable name for non-typed Collection parameter type奥秆,控制臺沒報錯信息,Baidu Google 都找不到一樣的案例咸灿,最后自己發(fā)現(xiàn)是形參類不完整的問題构订。

????????@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 分頁插件审胸。關(guān)鍵在這里:Page 對象里含有分頁信息亥宿,但因為它又是List,直接用${page.total} 這種寫法是取不到分頁信息的砂沛,試了幾次烫扼,用下面代碼寫法可行:${page.getTotal()} 。

PS: 還有一種用下標(biāo)的EL 表達(dá)式寫法碍庵,不循環(huán)也能取到List 里面實體數(shù)據(jù)的值:${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;


? //執(zhí)行一個laypage實例

? laypage.render({

? ? elem: 'test1' //注意悟狱,這里的 test1 是 ID,不用加 # 號

? ? ,count: "${page.getTotal()}" //數(shù)據(jù)總數(shù)堰氓,從服務(wù)端得到

? ? ,limit:"${page.getPageSize()}"

? ? ,curr:"${page.getPageNum()}"

? ? , layout: ['prev', 'page', 'next','count']

? ? ,jump: function(obj, first){ // 切換頁碼的時候調(diào)用

? ? debugger

? ? ? ? //obj包含了當(dāng)前分頁的所有參數(shù)芽淡,比如:

? ? ? ? console.log(obj.curr); //得到當(dāng)前頁,以便向服務(wù)端請求對應(yīng)頁的數(shù)據(jù)豆赏。

? ? ? ? console.log(obj.limit); //得到每頁顯示的條數(shù)


? ? ? ? //首次不執(zhí)行

? ? ? ? if(!first){

? ? ? ? location.href="${url}pageNum="+obj.curr

? ? ? ? }

? ? ? }

? });

});

</script>

</head>

<body>

<!-- 分頁導(dǎo)航條 -->

<div id="test1"></div>

</body>

</html>

————————————————

版權(quán)聲明:本文為CSDN博主「rock154」的原創(chuàng)文章,遵循 CC 4.0 BY-SA 版權(quán)協(xié)議富稻,轉(zhuǎn)載請附上原文出處鏈接及本聲明掷邦。

原文鏈接:https://blog.csdn.net/rock154/article/details/80230545

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市椭赋,隨后出現(xiàn)的幾起案子抚岗,更是在濱河造成了極大的恐慌,老刑警劉巖哪怔,帶你破解...
    沈念sama閱讀 222,183評論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件宣蔚,死亡現(xiàn)場離奇詭異,居然都是意外死亡认境,警方通過查閱死者的電腦和手機胚委,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,850評論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來叉信,“玉大人亩冬,你說我怎么就攤上這事∨鹕恚” “怎么了硅急?”我有些...
    開封第一講書人閱讀 168,766評論 0 361
  • 文/不壞的土叔 我叫張陵,是天一觀的道長佳遂。 經(jīng)常有香客問我营袜,道長,這世上最難降的妖魔是什么丑罪? 我笑而不...
    開封第一講書人閱讀 59,854評論 1 299
  • 正文 為了忘掉前任荚板,我火速辦了婚禮,結(jié)果婚禮上吩屹,老公的妹妹穿的比我還像新娘啸驯。我一直安慰自己,他們只是感情好祟峦,可當(dāng)我...
    茶點故事閱讀 68,871評論 6 398
  • 文/花漫 我一把揭開白布罚斗。 她就那樣靜靜地躺著,像睡著了一般宅楞。 火紅的嫁衣襯著肌膚如雪针姿。 梳的紋絲不亂的頭發(fā)上袱吆,一...
    開封第一講書人閱讀 52,457評論 1 311
  • 那天,我揣著相機與錄音距淫,去河邊找鬼绞绒。 笑死,一個胖子當(dāng)著我的面吹牛榕暇,可吹牛的內(nèi)容都是我干的蓬衡。 我是一名探鬼主播,決...
    沈念sama閱讀 40,999評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼彤枢,長吁一口氣:“原來是場噩夢啊……” “哼狰晚!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起缴啡,我...
    開封第一講書人閱讀 39,914評論 0 277
  • 序言:老撾萬榮一對情侶失蹤壁晒,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后业栅,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體秒咐,經(jīng)...
    沈念sama閱讀 46,465評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,543評論 3 342
  • 正文 我和宋清朗相戀三年碘裕,在試婚紗的時候發(fā)現(xiàn)自己被綠了携取。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,675評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡帮孔,死狀恐怖歹茶,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情你弦,我是刑警寧澤惊豺,帶...
    沈念sama閱讀 36,354評論 5 351
  • 正文 年R本政府宣布,位于F島的核電站禽作,受9級特大地震影響尸昧,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜旷偿,卻給世界環(huán)境...
    茶點故事閱讀 42,029評論 3 335
  • 文/蒙蒙 一烹俗、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧萍程,春花似錦幢妄、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,514評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春潮尝,著一層夾襖步出監(jiān)牢的瞬間榕吼,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,616評論 1 274
  • 我被黑心中介騙來泰國打工勉失, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留羹蚣,地道東北人。 一個月前我還...
    沈念sama閱讀 49,091評論 3 378
  • 正文 我出身青樓乱凿,卻偏偏與公主長得像顽素,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子徒蟆,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,685評論 2 360

推薦閱讀更多精彩內(nèi)容