ssm框架实现分页查询

一、html静态页改jsp页

先增加page指令

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>

再更改html页后缀为jsp

二、实现分页查询

1、在jdbc.properties中设置每页最大展示多少条数据

jdbc.size=5

2、在dao层处理

定义两个方法:统计数量

//实现分页
int selectCount();
List selectByPage(Map page);

3、在Mapper.xml中书写两个方法的查询语句

SELECT * FROM zhandian LIMIT ?, ?

?---限制多少---(page-1)*size

?---size

mybatis不允许直接传递2个参数

把limit和size保存到map中

<select id="selectCount" resultType="int">
		select count(*) from users
	</select>
	
	<select id="selectByPage" resultType="users" parameterType="map">
		select * from users limit #{limit},#{size}
	</select>

4、业务类实现分页功能

//取出属性文件
	@Value("${jdbc.size}")
	private int size;

@Override
	public int selectCount() {
		// TODO Auto-generated method stub
		return uDao.selectCount();
	}

	@Override
	public List selectByPage(int page) {
		Map param = new HashMap();
		param.put("limit", (page-1)*size);
		param.put("size", size);
		return uDao.selectByPage(param);
	}

5、控制器实现分页

请求参数---int page---需要访问的页码

回传---总数量total、页码page、总页码totalpage、数据list

获取size:

        在UsersServiceImpl.java中增加

        public int getSize() {
        return size;
    }

        在UsersService.java中增加

        public int getSize();

/**
	 * 分页查询
	 * @param page 访问的页码
	 * @return 数据展示页
	 */
	@RequestMapping("/selectByPage")
	public String selectByPage(int page) {
		//总数量
		int total = us.selectCount();
		//获取size
		int size = us.getSize();
		//页码page
		
		//总页码totalpage
		//int totalpage = (total%size==0)?total/size : total/size+1;
		int totalpage = (total+size-1)/size;
		//数据list
		List list = us.selectByPage(page);
        //回传
		request.setAttribute("total", total);
		request.setAttribute("page", page);
		request.setAttribute("totalpage", totalpage);
		request.setAttribute("list", list);
		return "users/list";
	}

 不在请求selectList,直接请求第一页

 6、页面实现分页脚本(在list.jsp)

<!-- 分页工具条 -->
		<div class="row">
			<div class="col-sm-4">
				<div id="pagerInfo">共${total }条数据,${page }/${totalpage }页</div>
			</div>
			<div class="col-sm-8">
				<nav id="pagerNav">
		        	<ul class="pagination pagination-sm pull-right">
		        		<li><a href="javascript:next(1);" id="firstBtn">首页</a></li>		
		        		<li><a href="javascript:next(${page-1 });" id="prevBtn">上页</a></li> 		        		
		        		<li><a href="javascript:next(${page+1 });" id="nextBtn">下页</a></li>               
		        		<li><a href="javascript:next(${totalpage });" id="lastBtn">末页</a></li>
		        	</ul>
		        </nav>
			</div>
		</div>

list.jsp控制(next方法)

function next(page){
		if(${page}==1 && page<=1){
			layer.msg("当前已经是第一页了");
		}else if(${page}==${totalpage} && page>=${totalpage}){
			layer.msg("当前已经是最后页了");
		}else{
			location = 'zhandian/selectByPage?page='+page;
		}
	}

7、给删除添加点击事件

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值