ssm 实现分页效果 PageHelper插件
本文地址 : https://blog.csdn.net/qq_40791070/article/details/89227891
项目配置
maven 依赖
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>5.1.2</version>
</dependency>
第一种配置方法 spring-dao.xml
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<!-- 配置XML映射文件的位置 -->
<property name="mapperLocations"
value="classpath:mappers/*.xml" />
<!-- 配置数据源 -->
<property name="dataSource"
ref="dataSource" />
<!-- 分页插件配置 -->
<property name="plugins">
<array>
<bean class="com.github.pagehelper.PageInterceptor">
<property name="properties">
<value>
helperDialect=mysql
reasonable=true
</value>
</property>
</bean>
</array>
</property>
</bean>
第二种配置方法 mybatis-comfig.xml
<plugins>
<plugin interceptor="com.github.pagehelper.PageHelper">
<property value="mysql" name="dialect"/>
<property value="false" name="offsetAsPageNum"/>
<property value="false" name="rowBoundsWithCount"/>
<property value="true" name="pageSizeZero"/>
<property value="false" name="reasonable"/>
<property value="false" name="supportMethodsArguments"/>
<property value="none" name="returnPageInfo"/>
</plugin>
</plugins>
两种方法按照你配的ssm框架进行采用,不同的配置方法,基本上以上两种方法的分页插件都可以适用
控制层 control
Page<Client> page = PageHelper.startPage(cpage, 6);
List<Client> list=sysanalysisServiceimpl.GetSumOfQuarter();
listofQuarter = new PageInfo<Client>(list);
1.但调用ModelAndView(视图)时 ,cpage=1;Client 为对象
2. 当后台传参,跳转到第几页时时;
Integer cpage=Integer.parseInt(request.getParameter("cpage"));
补充 jsp 页面上下分页按钮
<div class="itab">
<ul>
<li><a href="#">总页数:<b id="pages" value="">${pageInfo.pages }</b>页
</a></li>
<li><a href="#">总记录:<b id="total" value="">${pageInfo.total }</b>条
</a></li>
<li style="width: 120px;"><a href="#">位置: <b
id="span1" value="">${pageInfo.pageNum }</b>/<b id="span2"
value="">${pageInfo.pages}</b>页
</a></li>
<li style="width: 80px;"></li>
<li><input type="button" "Jump(0)" value="首页"
style="width: 50px; height: 35px;" /></li>
<li style="width: 40px;"></li>
<li><input type="button" "Jump(1)" value="上一页"
style="width: 50px; height: 35px;" /></li>
<li style="width: 40px;"></li>
<li><input type="button" "Jump(2)" value="下一页"
style="width: 50px; height: 35px;" /></li>
<li style="width: 40px;"></li>
<li><input type="button" "Jump(3)" value="末页"
style="width: 50px; height: 35px;" /></li>
<li style="width: 80px; background-color: white;"></li>
<li><input type="text" name="choice" id="choice" value=""
style="width: 60px; height: 32px; border-color: gold;" /> <input
type="button" "Jump(4)" value="跳转"
style="width: 50px; height: 35px;" /></li>
</ul>
</div>
js获取页数
var pageNum = $("#span1").html();
var pages = $("#pages").html();
pageNum=PageOfResult(id,pages,choice,pageNum);
封装js方法
1.可多次直接调用;pageNum=PageOfResult(id,pages,choice,pageNum);
2. id 为0 ,1,2,3, 4 分别表示跳转到首页,上一页,下一页,尾页 ,指定页数
function PageOfResult(id,pages,choice,pageNum){
pageNum=parseInt(pageNum);
pages=parseInt(pages);
switch (id){
case 0:
if(pageNum!=1) {
pageNum = 1;
}else{
alert("已是首页!");
return false;
}
break;
case 1:
if(pageNum>1){
pageNum=parseInt(pageNum)-1;
}
else {
alert("已是首页!");
return false;
}
break;
case 2:
if(pageNum<pages){
pageNum=parseInt(pageNum)+1;
}
else {
alert("已是尾页!");
return false;
}
break;
case 3:
if(pageNum!=pages){
pageNum=pages;
}
else {
alert("已是尾页!");
return false;
}
break;
case 4:
if(choice !=""){
if(choice>=1 && parseInt(choice)<=parseInt(pages)){
if( pageNum==choice){
return false;
}
pageNum=choice;
}
else{
alert("该页数不存在!");
return false;
}
}else {
return false;
}
break;
}
return pageNum;
}