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;
}