1、引入依赖

	<!-- pageHelper分页插件 -->
	<dependency>
	    <groupId>com.github.pagehelper</groupId>
	    <artifactId>pagehelper</artifactId>
	    <version>5.1.7</version>
	</dependency>

2、配置分页插件
在mybatis.xml文件中配置:

<configuration>
    <plugins>
	    <!-- 配置分页插件 -->
	    <plugin interceptor="com.github.pagehelper.PageInterceptor">
	        
	    </plugin>
	</plugins>

</configuration>

也可以选择在spring的配置文件中配置(两种方法选一个):

    <bean id="sqlSession" class="org.mybatis.spring.SqlSessionFactoryBean">
    	<!-- 在mapping.xml可以不用加实体类的包名 -->
        <property name="typeAliasesPackage" value="com.wwz.bookSystem.pojo" />
        <property name="dataSource" ref="dataSource"/>
        <!-- 自动扫描mapping.xml文件 -->
        <property name="mapperLocations" value="classpath:com/wwz/bookSystem/mapper/*.xml"/>
        <!-- 配置pagehelper分页插件 -->
        <property name="plugins">
            <array>
                <bean class="com.github.pagehelper.PageInterceptor">
                    <property name="properties">
                    	<!--使用下面的方式配置参数,一行配置一个 -->
                        <value>
              	</value>
                    </property>
                </bean>
            </array>
        </property>
    </bean>

2、编写Page类,用于保存分页信息

public class Page {
	int start=0;              //start: 开始位置
    int count = 7;           //count: 每页的个数
    int last = 0;             //last: 最后一页的位置,先预设一个值,后面通过caculateLast计算赋值
    int index=1;              //当前页码
    int total=1;                //总数
    
    //通过总数total和每页的个数计算出最后一页的位置
	public void caculateLast(int total) {
        // 假设总数是50,是能够被5整除的,那么最后一页的开始就是45
        if (0 == total % count)
            last = total - count;
        // 假设总数是51,不能够被5整除的,那么最后一页的开始就是50
        else
            last = total - total % count;      
    }
	
	//设置页码
	public void setUpIndex(int start,int count) {
		index=start/count+1;
	}	
	//省略set和get方法
}

3、控制器

	public String permissionList(ModelMap modelMap,Page page)
	{
		//如果开始位置start小于0,则置0
		if(page.getStart()<0) {
			page.setStart(0);
		}
		
		//如果开始位置start大于总数,则置为最后一页开始位置
		if(page.getStart()>=page.getTotal()) {
			page.setStart(page.getLast());
		}
		
		//在查询所有数据之前调用pagehelper,参数为开始位置和每页个数
		PageHelper.offsetPage(page.getStart(),page.getCount());
		
		//查询
		List<Permission> permissions=permissionService.selectAllPermission();
		
		//通过总数计算最后一页开始位置
		page.setTotal((int) new PageInfo<Permission>(permissions).getTotal());
		page.caculateLast(page.getTotal());
				
		//设置页码
		page.setUpIndex(page.getStart(), page.getCount());
				
		modelMap.addAttribute("permissions",permissions);
		return "back/permission/permissionList";
	}

4、jsp页面

			<!-- 分页 -->
		      <ul class="pagination pagination-lg no-margin pull-right">
  				<li><a href="?start=0">首  页</a></li>
			    <li>
			      <a href="?start=${page.start-page.count}&last=${page.last}&total=${page.total}">
			        &laquo;
			      </a>
			    </li>
			    <li class="active">
				  <span>${page.index} <span class="sr-only">(current)</span></span>
				 </li>
			     <li>
			        <a href="?start=${page.start+page.count}&last=${page.last}&total=${page.total}">
			          &raquo;
			        </a>
			     </li>
			     <li>
			       <a href="?start=${page.last}&last=${page.last}&total=${page.total}">末  页</a>
			     </li>
			  </ul>

5、效果截图
在这里插入图片描述

在这里插入图片描述

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐