pageHelper分页插件的使用

小编 2026-06-28 阅读:326 评论:0
pageHelper分页插件 --> mybatis专门的分页插件 1.在pom.xml中添加分页插件坐标 <dependency> <groupId>com.git...

pageHelper分页插件 --> mybatis专门的分页插件
1.在pom.xml中添加分页插件坐标
	<dependency>
		<groupId>com.github.pagehelper</groupId>
		<artifactId>pagehelper</artifactId>
		<version>5.1.2</version>
	</dependency>



2.在mybatis的配置文件里加入pageHelper的配置
    <plugins>
        <plugin interceptor=\"com.github.pagehelper.PageInterceptor\">
            <!-- config params as the following -->
            <!--<!–分页参数合理化  –>-->
            <property name=\"reasonable\" value=\"true\"/>
        </plugin>
    </plugins>

注意加载顺序问题,settings-->typeAliases-->plugins

3. 在要进行分页的action中进行如下配置	
	@RequestMapping(\"/findAllProducts\")
	public ModelAndView findAllProducts(
			@RequestParam(required=false,defaultValue=\"1\",value=\"pi\") Integer pageIndex,
			@RequestParam(required=false,defaultValue=\"10\",value=\"ps\") Integer pageSize)throws Exception{
		// 创建方法的返回值
		ModelAndView mv = new ModelAndView();
		// 设定分页条件
		
		//在查询之前传入当前页,然后多少记录
        	PageHelper.startPage(pageIndex,pageSize);
		//使用PageInfo包装查询结果,只需要将pageInfo交给页面就可以
        	PageInfo pageInfo = new PageInfo<Product>(productService.findAllProducts(),pageSize/2);
        	// 保存数据
        	mv.addObject(\"pageInfo\", pageInfo);
		// 转发地址
		mv.setViewName(\"product-list\");
		// 返回
		return mv;
	}

此处要注意pageInfo的用法,和PageHelper的设置



4.在要分页的页面加入如下配置
<!-- 分页开始 -->
	<div class=\"box-footer\">
		<div class=\"pull-left\">
			<div class=\"form-group form-inline\">
				当前第 ${pageInfo.pageNum} 页.总共 ${pageInfo.pages} 页.一共 ${pageInfo.total} 条记录.
				 每页 <select class=\"form-control\" onchange=\"changePS(${pageInfo.pageNum},this);\">
						<option <c:if test=\"${pageInfo.pageSize == 10}\">selected</c:if>>10</option>
						<option <c:if test=\"${pageInfo.pageSize == 15}\">selected</c:if>>15</option>
						<option <c:if test=\"${pageInfo.pageSize == 20}\">selected</c:if>>20</option>
						<option <c:if test=\"${pageInfo.pageSize == 25}\">selected</c:if>>25</option>
						<option <c:if test=\"${pageInfo.pageSize == 30}\">selected</c:if>>30</option>
				</select> 条
			</div>
		</div>

		<div class=\"box-tools pull-right\">
			<ul class=\"pagination\">
				<!-- 首页 -->
				<li><a href=\"###\" onclick=\"goPage(1);\">首页</a></li>
				<!-- 上一页 -->
				<li>
					<c:if test=\"${pageInfo.hasPreviousPage}\">
						<a href=\"###\" onclick=\"goPage(${pageInfo.pageNum-1});\" aria-label=\"Previous\">
							<span aria-hidden=\"true\">«</span>
						</a>
					</c:if>
				</li>
				<!--循环遍历连续显示的页面,若是当前页就高亮显示,并且没有链接-->
				<c:forEach items=\"${pageInfo.navigatepageNums}\" var=\"page_num\">
					<c:if test=\"${page_num == pageInfo.pageNum}\">
						<li class=\"active\"><a href=\"#\">${page_num}</a></li>
					</c:if>
					<c:if test=\"${page_num != pageInfo.pageNum}\">
						<li><a href=\"###\" onclick=\"goPage(${page_num});\">${page_num}</a></li>
					</c:if>
				</c:forEach>

				 <!--下一页-->
				<li>
					<c:if test=\"${pageInfo.hasNextPage}\">
						<a href=\"###\" aria-label=\"Next\" onclick=\"goPage(${pageInfo.pageNum+1});\">
							<span aria-hidden=\"true\">»</span>
						</a>
					</c:if>
				</li>
				<!-- 尾页 -->
				<li><a href=\"###\" onclick=\"goPage(${pageInfo.pages});\">尾页</a></li>
			</ul>
		</div>

	</div>
	<!-- 分页结束 -->




5. 编写JS方法
	<!-- 分页函数 -->
	<script type=\"text/javascript\">
		function goPage(pageIndex){
			window.location.href=\"${pageContext.request.contextPath}/ProductViewAction/findAllProducts?pi=\"+pageIndex;
		}
		function changePS(pageIndex,pageSize){
			window.location.href=\"${pageContext.request.contextPath}/ProductViewAction/findAllProducts?pi=\"+pageIndex+\"&ps=\"+pageSize.value+\"\";
		}
	</script>




 

版权声明

本文仅代表作者观点,不代表百度立场。
本文系作者授权百度百家发表,未经许可,不得转载。

热门文章
  • 机房智能化温湿度解决方式之POE供电以太网温湿度传感器

    机房智能化温湿度解决方式之POE供电以太网温湿度传感器
    机房智能化温湿度解决方式之POE供电以太网温湿度传感器 北京盈创力和电子科技有限公司 智能型TCP网口温湿度记录仪 北京IP网络温湿度记录仪厂家,北京盈创力和 北京智能型TCP网口温湿度记录仪IP网络温湿度记录仪是一种新型的基于TCP/IP协议双绞线以太网标准温湿度采集模块,利用它可以实现现场温度值、相对湿度值的采集,同时利用其自身的RJ45通信接口可以方便地和机房监控主机或交换机集线器进行联网。 工作于-40℃~85℃工业级带...
  • Sequential Monte Carlo Methods (SMC) 序列蒙特卡洛/粒子滤波/Bootstrap Filtering

    Sequential Monte Carlo Methods (SMC) 序列蒙特卡洛/粒子滤波/Bootstrap Filtering
    Problem Statement 我们考虑一个具有马尔可夫性质、非线性、非高斯的状态空间模型(State Space Model):对于一个时间序列上的观测结果{yt,t∈N}\\{ y_t , t \\in N \\}{yt​,t∈N},我们认为每个观测结果yty_tyt​的生成依赖于一个无法直接观察的隐变量xt∈{xt,t∈N}x_t \\in \\{x_t , t \\in N \\}xt​∈{xt​,t∈N},即:p(...
  • HTTP状态保持的原理

    HTTP状态保持的原理
    a)在用户登录之后,浏览器返回响应的时候会在响应中添加上cookieb)浏览器接收到cookie之后会自动保存c)当用户再次请求同一服务器中的其他网页的时候,浏览器会自动带上之前保存的cookied)服务接收到请求之后可以请 request 对象中取到cookie 判断当前用户是否登录  Http是无状态的,就是连接时数据互通,关闭后...
  • Hive 系统函数及示例

    Hive 系统函数及示例
    查看所有系统函数 show functions; 函数分类 内置函数【系统函数】 数学函数: floor、round、ceil、cos、log2等 字符串函数: length、reverse、trim、lower、get_json_object、repeat等 收集函数: size 转换函数: cast 日期函数: year、month、datediff、date、date_add等 条件函数: coalesce、case…w...
  • CSRF的原理和防范措施

    CSRF的原理和防范措施
    a)攻击原理:i.用户C访问正常网站A时进行登录,浏览器保存A的cookieii.用户C再访问攻击网站B,网站B上有某个隐藏的链接或者图片标签会自动请求网站A的URL地址,例如表单提交,传指定的参数iii.而攻击网站B在访问网站A的时候,浏览器会自动带上网站A的cookieiv.所以网站A在接收到请求之后可判断当前用户是登录状态,所以...
标签列表