文档章节

Mybatis Paginator分页

_
 _Roger_
发布于 2015/10/20 10:12
字数 528
阅读 112
收藏 0

mybatis-paginator是gethub上的一个开源项目、用于java后台获取分页数据、该开源项目还提供一个列表组件(mmgrid)用于前端展示。

该开源项目地址:https://github.com/miemiedev

参考博客:http://blog.csdn.net/szwangdf/article/details/27859847

1、maven添加依赖

<dependencies>
  ...
    <dependency>
        <groupId>com.github.miemiedev</groupId>
        <artifactId>mybatis-paginator</artifactId>
        <version>1.2.10</version>
    </dependency>
  ...
</dependencies>


2、mybatis-config.xml配置插件

<?xmlversion="1.0"encoding="UTF-8"?>
<!DOCTYPE configuration  PUBLIC "-//ibatis.apache.org//DTD Config 3.0//EN"  "http://ibatis.apache.org/dtd/ibatis-3-config.dtd">
<configuration>
    <plugins>
        <plugin interceptor="com.github.miemiedev.mybatis.paginator.OffsetLimitInterceptor">
            <propertyname="dialectClass"value="com.github.miemiedev.mybatis.paginator.dialect.OracleDialect"/>
        </plugin>
     </plugins>
</configuration>


3、spring mvc传递分页的数据

3.1、使用Json

需要配置spring-mvc.xml

<mvc:annotation-driven>
    <mvc:message-converters register-defaults="true">
        <bean class="org.springframework.http.converter.StringHttpMessageConverter">
            <constructor-argvalue="UTF-8"/>        
        </bean>
 
        <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
             <property name="objectMapper">
                 <bean class="com.github.miemiedev.mybatis.paginator.jackson2.PageListJsonMapper"/>
             </property>
             <property name="supportedMediaTypes">
                <list>
                    <value>text/html;charset=UTF-8</value>
                </list>
            </property>
         </bean>
     </mvc:message-converters>
 </mvc:annotation-driven>


controller传递方式

(利用@ResponseBody注解传递Json数据,需要添加相关jar包:jackson-core-asl.jar和jackson-mapper-asl.jar)

@ResponseBody
@RequestMapping(value ="/findByCity")
public List findByCity(@RequestParam String city,
                 @RequestParam(required =false,defaultValue ="1") intpage,
                 @RequestParam(required =false,defaultValue ="30") intlimit,
                 @RequestParam(required =false) String sort,
                 @RequestParam(required =false) String dir) {
 
    return userService.findByCity(city, newPageBounds(page, limit, Order.create(sort,dir)));
}


序列化后的Json字符串

{
    "items":[
        {"NAME":"xiaoma","AGE":30,"GENDER":1,"ID":3,"CITY":"BeiJing"},
        {"NAME":"xiaoli","AGE":30,"SCORE":85,"GENDER":1,"ID":1,"CITY":"BeiJing"},
        {"NAME":"xiaowang","AGE":30,"SCORE":92,"GENDER":0,"ID":2,"CITY":"BeiJing"},
        {"NAME":"xiaoshao","AGE":30,"SCORE":99,"GENDER":0,"ID":4,"CITY":"BeiJing"}
    ],

    "slider": [1, 2, 3, 4, 5, 6, 7],
    "hasPrePage":false,
    "startRow": 1,
    "offset": 0,
    "lastPage":false,
    "prePage": 1,
    "hasNextPage":true,
    "nextPage": 2,
    "endRow": 30,
    "totalCount": 40351,
    "firstPage":true,
    "totalPages": 1346,
    "limit": 30,
    "page": 1
}


3.2、在spring mvc的jsp中用JSTL取分页数据的值

spring-mvc.xml配置

<mvc:interceptors>
    <mvc:interceptor>
        <mvc:mapping path="/**"/>
        <bean class="com.github.miemiedev.mybatis.paginator.springmvc.PageListAttrHandlerInterceptor"/>
    </mvc:interceptor>
</mvc:interceptors>


controller方法传值方式

@RequestMapping(value ="/userView")
public ModelAndView userView(@RequestParam String city,
                 @RequestParam(required =false,defaultValue ="1")int page,
                 @RequestParam(required =false,defaultValue ="30")int limit,
                 @RequestParam(required =false) String sort,
                 @RequestParam(required =false) String dir) {
    List users = userService.findByCity(city,newPageBounds(page, limit, Order.create(sort,dir)));
    return newModelAndView("account/user","users", users);
}


jsp取值(拦截器会将PageList分拆添加Paginator属性,默认命名规则为"原属性名称"+"Paginator")

<table>
    <c:forEach items="${users}"var="user">
        <tr>
            <td>${user['ID']}</td>
            <td>${user['NAME']}</td>
            <td>${user['AGE']}</td>
        </tr>
    </c:forEach>
</table>

上一页: ${usersPaginator.prePage} 
当前页: ${usersPaginator.page} 
下一页: ${usersPaginator.nextPage} 
总页数: ${usersPaginator.totalPages} 
总条数: ${usersPaginator.totalCount} 


更多属性参考Paginator类提供的方法


© 著作权归作者所有

共有 人打赏支持
_
粉丝 29
博文 82
码字总数 39915
作品 0
武汉
私信 提问
Mybatis分页和Spring的集成

写了一个Mybatis分页控件,在这记录一下使用方式。 在Maven中加入依赖: <dependencies> ... <dependency> <groupId>com.github.miemiedev</groupId> <artifactId>mybatis-paginator</artif......

miemiedev
2013/06/04
0
108
关于Mybatis-Paginator的分页问题

@miemiedev 版本:spring 4.2.0.RELEASE,mybatis-3.3.0,mybatis-paginator-1.2.17 UserMapper.xml BaseDao service UserDao继承了BaseDao Controller mybaitis-config.xml spring的配置 无法返......

ecp
2015/08/28
5.2K
3
Mybatis的分页插件--Mybatis-Paginator

用于Mybatis的分页插件,提供了服务器端的分页和排序功能。 基本的用法可以查看这里。

miemiedev
2013/06/17
13.5K
3
Bootstrap Paginator分页插件使用

Bootstrap Paginator分页插件使用 概述 Bootstrap Paginator是一款基于Bootstrap的js分页插件。它提供了一系列的参数用来支持用户的定制,提供了公共的方法可随时获得插件状态的改变,以及事...

1027888989178846
2018/12/12
0
0
Django 基于类的视图源码分析 三

列表类通用视图(list.py) 此文件包含用于显示数据列表常用的类和工具类。不仅可以方便的用于显示基于模型(Model)的数据列表,也可以用于显示自定义数据列表。 ![list.py类图][1] 此图中绿色部...

XuYuan
2013/02/22
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Nextjs+React非页面组件SSR渲染

@随风溜达的向日葵 Nextjs Nextjs是React生态中非常受欢迎的SSR(server side render——服务端渲染)框架,只需要几个步骤就可以搭建一个支持SSR的工程(_Nextjs_的快速搭建见Next.js入门)...

随风溜达的向日葵
48分钟前
0
0
如何在 Linux 系统查询机器最近重启时间

在你的 Linux 或类 UNIX 系统中,你是如何查询系统上次重新启动的日期和时间?怎样显示系统关机的日期和时间? last 命令不仅可以按照时间从近到远的顺序列出该会话的特定用户、终端和主机名...

来来来来来
今天
3
0
Redis协议是什么样的

前言 我们用过很多redis的客户端,有没有相过自己撸一个redis客户端? 其实很简单,基于socket,监听6379端口,解析数据就可以了。 redis协议 解析数据的过程主要依赖于redis的协议了。 我们...

春哥大魔王的博客
今天
6
0
乱入Linux界的我是如何学习的

欢迎来到建哥学Linux,咳!咳!咳!开个玩笑哈,我是一个IT男,IT界的入门选手,正在学习Linux。 在之前,一直想进军IT界,学习IT技术,但是苦于没有人指导,也不知道学什么,最开始我自己在...

linuxCool
今天
4
0
携程Apollo统一配置中心的搭建和使用(java)

一.Apollo配置中心介绍 1、What is Apollo 1.1 Apollo简介 Apollo(阿波罗)是携程框架部门研发的开源配置管理中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到...

morpheusWB
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部