利用PageHelper和bootstrap进行表格数据分页
1、引入依赖<!-- pageHelper分页插件 --><dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper</artifactId>
·
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}">
«
</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}">
»
</a>
</li>
<li>
<a href="?start=${page.last}&last=${page.last}&total=${page.total}">末 页</a>
</li>
</ul>
5、效果截图
更多推荐
已为社区贡献1条内容
所有评论(0)