简单分页查询的实现

后端:

	protected void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		// TODO Auto-generated method stub
		int pageSize = 5;//初始化每页显示的记录条数
		String pString = request.getParameter("pageNum");//获取参数(页码)
		int pageNum = 1;//初始化页码值
		if (!StringUtils.isBlank(pString)) {//如果获取的参数不为空且不是空格
			pageNum = Integer.valueOf(pString);//将String型参数强转为int型
		}
		request.setAttribute("pageNum", pageNum);//以(key,value)形式存入数据,前端页面可以通过EL表达式直接获取
		
		int offset = pageSize * (pageNum - 1);//计算偏移量,初始记录行的偏移量是0(而不是 1)
		//例:每页显示五条数据,以id作为主键查询,第一页对应id{1,2,3,4,5},对应偏移量{0,1,2,3,4}

		Connection connection = null;
		Statement statement = null;
		ResultSet resultSet = null;
		try {
			connection = (Connection) DBUtil.getConnection();
			statement = (Statement) connection.createStatement();
			
			String sql = "SELECT * FROM t_user order by id desc limit " + offset + "," + pageSize;//查询t_user表的所有记录,以id倒排的形式显示记录,每页显示5条记录
			System.out.println(sql);
			resultSet = statement.executeQuery(sql);//执行sql语句
			
			RequestDispatcher dispatcher = request.getRequestDispatcher("userList.jsp");//转发到前端页面
			dispatcher.forward(request, response);
			return;

		} catch (Exception e) {
			// TODO: handle exception
			e.printStackTrace();
		} finally {
			DBUtil.close(connection, statement, resultSet);//关流
		}
	}

前端:

<!--在jsp页面中引入c和fn -->
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>

	<c:if test="${ pageNum >1 }"><!--判断,如果页码>1 -->
		<a href="/blog/showUsers?pageNum=${pageNum-1}">上一页</a><!--添加文字链接到上一页 -->
	</c:if>

	<c:if test="${ fn:length(userList) >=5 }"><!--判断,如果list长度>=5 -->
		<a href="/blog/showUsers?pageNum=${pageNum+1}">下一页</a><!--添加文字链接到下一页 -->
	</c:if>

<!--在jsp页面中不能通过${list.size}取列表长度-->
发布了49 篇原创文章 · 获赞 17 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/ashleyjun/article/details/100130089