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="#">位置:&nbsp;<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;
  }

发布了15 篇原创文章 · 获赞 4 · 访问量 1473

猜你喜欢

转载自blog.csdn.net/qq_40791070/article/details/89227891