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>

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

版权声明:本文为CSDN博主「rock154」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。

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

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,324评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,356评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,328评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,147评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,160评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,115评论 1 296
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,025评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,867评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,307评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,528评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,688评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,409评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,001评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,657评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,811评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,685评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,573评论 2 353

推荐阅读更多精彩内容