关于jsp如何实现分页功能。

JSP实现分页功能需要使用Java代码和JSP标签。通过Java代码获取总记录数和每页显示的记录数,然后计算总页数。接着,根据当前页码获取对应的记录,并使用JSP标签将数据展示在页面上。

在Web开发中,分页功能是非常常见的需求,JSP(Java Server Pages)是一种基于Java技术的动态网页开发技术,可以实现分页功能,本文将详细介绍如何使用JSP实现分页功能。

1、分页原理

关于jsp如何实现分页功能。

分页是将大量数据分成多个页面显示的技术,用户可以通过点击页面上的导航按钮来浏览不同的页面,分页的原理是将数据从数据库中查询出来,然后根据用户请求的页面号和每页显示的数据量,计算出需要显示的数据范围,最后将这部分数据返回给用户。

2、JSP分页实现方法

JSP分页实现方法主要有以下几种:

(1)使用JSP标准标签库(JSTL)的<c:forEach>标签进行分页。

(2)使用SQL语句中的LIMITOFFSET关键字进行分页。

(3)使用第三方分页插件,如PageHelper、MyBatis-Plus等。

下面分别介绍这三种方法的实现过程。

关于jsp如何实现分页功能。

3、使用JSTL标签库进行分页

需要在项目中引入JSTL标签库,在JSP页面的顶部添加以下代码:

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

使用<c:forEach>标签进行分页,假设我们有一个名为list的列表,存储了从数据库中查询出来的数据,我们需要将其分成每页显示10条数据的多个页面,可以使用以下代码实现:

<table>
    <tr>
        <th>编号</th>
        <th>名称</th>
    </tr>
    <c:forEach var="item" items="${list}" varStatus="status">
        <tr>
            <td>${item.id}</td>
            <td>${item.name}</td>
        </tr>
    </c:forEach>
</table>

接下来,我们需要实现分页导航,可以使用以下代码实现:

<div>
    <c:forEach begin="1" end="${totalPage}" var="i">
        <a href="?page=${i}">${i}</a>
    </c:forEach>
</div>

${totalPage}表示总页数,可以通过计算得到,如果总共有50条数据,每页显示10条数据,那么总页数为5,计算总页数的代码如下:

<c:set var="totalPage" value="${(list.size() + 9) / 10}" />

4、使用SQL语句进行分页

在执行SQL查询时,可以使用LIMITOFFSET关键字进行分页,查询第2页的数据,每页显示10条数据,可以使用以下SQL语句:

关于jsp如何实现分页功能。

SELECT * FROM table_name LIMIT 10 OFFSET 10;

在JSP中,可以使用PreparedStatement对象执行带参数的SQL语句。

String pageIndex = request.getParameter("page"); // 获取当前页码
int offset = (Integer.parseInt(pageIndex) 1) * 10; // 计算偏移量
String sql = "SELECT * FROM table_name LIMIT 10 OFFSET ?"; // SQL语句,使用占位符代替实际参数值
PreparedStatement pstmt = connection.prepareStatement(sql); // 创建PreparedStatement对象
pstmt.setInt(1, offset); // 设置参数值
ResultSet resultSet = pstmt.executeQuery(); // 执行查询,获取结果集

5、使用第三方分页插件进行分页

除了上述两种方法外,还可以使用第三方分页插件来实现分页功能,使用PageHelper插件可以简化分页操作,需要在项目中引入PageHelper依赖,在执行查询前调用PageHelper.startPage()方法设置分页参数。

import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
// ...省略其他代码...
String pageIndex = request.getParameter("page"); // 获取当前页码
int pageSize = 10; // 每页显示的数据量
PageHelper.startPage(Integer.parseInt(pageIndex), pageSize); // 设置分页参数
List<Item> list = itemMapper.selectAll(); // 执行查询,获取数据列表
PageInfo<Item> pageInfo = new PageInfo<>(list); // 将数据列表封装成PageInfo对象,包含分页信息和数据列表本身
request.setAttribute("pageInfo", pageInfo); // 将PageInfo对象存入请求域中,供JSP页面使用

在JSP页面中,可以直接使用${pageInfo.list}访问当前页的数据列表,使用${pageInfo.totalCount}访问总记录数,使用${pageInfo.pageNum}访问当前页码,使用${pageInfo.pages}访问总页数。

<span>总记录数:${pageInfo.totalCount}</span> | <span>总页数:${pageInfo.pages}</span> | <span>当前页:${pageInfo.pageNum}</span> | <span>每页显示:${pageSize}</span> | <span>总共显示:${pageInfo.totalPage}</span> | <span>跳转到:</span> <form action="?page=${pageInfo.nextPageNum}" method="get"> <input type="text" name="page" value="${pageInfo.nextPageNum}" /> <input type="submit" value="跳转" /> </form> | <span>跳转到:</span> <form action="?page=${pageInfo.prePageNum}" method="get"> <input type="text" name="page" value="${pageInfo.prePageNum}" /> <input type="submit" value="上一页" /> </form> | <span>跳转到:</span> <form action="?page=1" method="get"> <input type="text" name="page" value="1" /> <input type="submit" value="首页" /> </form> | <span>跳转到:</span> <form action="?page=${pageInfo.pages}" method="get"> <input type="text" name="page" value="${pageInfo.pages}" /> <input type="submit" value="尾页" /> </form> | <span>跳转到:</span> <form action="?page=${pageInfo.currentPageNum}" method="get"> <input type="text" name="page" value="${pageInfo.currentPageNum}" /> <input type="submit" value="下一页" /> </form> | <span>跳转到:</span> <form action="?page=${pageInfo.lastPageNum}" method="get"> <input type="text" name="page" value="${pageInfo.lastPageNum}" /> <input type="submit" value="末页" /> </form> | <span>跳转到:</span> <form action="/index.jsp" method="get"> <input type="text" name="page" value="/index.jsp" /> <input type="submit" value="首页" /> </form> | <span>跳转到:</span> <form action="/end.jsp" method="get"> <input type="text" name="page" value="/end.jsp" /> <input type="submit" value="尾页" /> </form> | <span>&nbsp;&nbsp;|&nbsp;&nbsp;</span><br/> | ${list} | ${list} | ${list} | ${list} | ${list} | ${list} | ${list} | ${list} | ${list} | ${list} | ${list} | ${list} | ${list} | ${list} | ${list} | ${list} | ${list} | ${list} | ${list} | ${list} | ${list} | ${list} | ${list} | ${list} | ${list} | ${list} | ${list} | ${list} | ${list} | ${list} | ${list} | ${list} | ${list} | ${list} | ${list} | ${list} | ${list} | ${list} | ${list} | ${list} | ${list} | ${list} | ${list} | ${list} | ${list} | ${list} | ${list} | ${list} | ${list} | ${list} | ${list} | ${list} | ${list} | ${list} | ${list} | ${list} | ${list} | ${list} | ${list} | ${list} |

本文来自投稿,不代表重蔚自留地立场,如若转载,请注明出处https://www.cwhello.com/478889.html

如有侵犯您的合法权益请发邮件951076433@qq.com联系删除

(0)
IT工程IT工程订阅用户
上一篇 2024年7月16日 08:39
下一篇 2024年7月16日 08:49

相关推荐

  • 经验分享pythoninput输入列表。

    在Python中,我们经常需要从用户那里获取输入,这可能是一个字符串、整数、浮点数,甚至是列表,在本篇文章中,我们将重点讨论如何通过input函数获取用户输入的列表。 1、使用input函数获取输入 Python的input函数…

    2024年7月21日
    01
  • 分享网站栏目的分页如何做好SEO优化。

    在SEO优化中,网站栏目分类的优化相对难度是比较大,因为很多网站的后台没有权限去直接修改或填写网站TDK,更重要的是,很多人对于网站栏目分类的优化也不理解,不重视。今天我们来说说网站栏目分页的SEO优化要怎么…

    2022年12月2日
    013
  • web前端设计表格布局和div+CSS布局。

    发展过程 上个世纪Web开发人员流行使用表格进行文档整体布局。因为当时大部分浏览器不支持CSS,而且大部分人不会CSS,且没有文档拆分设计,致使文档臃肿,到了上个世纪末大部分没有相关背景的人进入,对于那些没有…

    2022年7月4日 建站资讯
    0338
  • 一个成熟的前端开发者都需要哪些知识。

    首先,成为一名成熟的开发者,首先必是一位有基础的开发。 所以最基本的一些HTML、CSS、JavaScript这些基础的语法,就不详细说了。 扎实的JavaScript基础 在前端开发里,最讲究的还是在JS里,基础的语法,能运用很…

    2022年7月4日 建站资讯
    0177
  • 关于jsp怎么获取当前时间。

    在JSP中获取当前时间有多种方法,下面将介绍两种常用的方法。 第一种方法是使用Java内置的Date类和SimpleDateFormat类来获取当前时间,我们需要创建一个Date对象来表示当前时间,然后使用SimpleDateFormat类来格式…

    2024年6月28日
    00
  • 小编分享建设网站需了解的几个大点。

    建设网站需了解的几个大点 重新定位你的网站建设,加强自身建设.你可以重新考虑一下,你的网站将适合什么样的群体,这样你就有针对性的调整自己网站的内容。要经常研究自己网站的统计,看看人们从哪里进来,又从哪…

    2022年11月10日
    00
  • 关于html如何给input复制。

    在HTML中,给<input>元素复制可以通过以下步骤实现: (图片来源网络,侵删) 1、创建一个包含要复制的文本内容的<input>元素。 2、使用JavaScript编写一个函数,该函数将获取<input>元素的值,…

    2024年6月25日
    03
  • 我来说说org.apache.jasper.JasperException处理异常如何解决。

    要解决org.apache.jasper.JasperException异常,可以尝试以下方法:,,1. 检查代码中是否有语法错误或逻辑错误。,2. 确保使用的库和依赖项版本正确。,3. 检查配置文件(如web.xml)是否正确。,4. 查看服务器日…

    2024年7月23日
    02

联系我们

QQ:951076433

在线咨询:点击这里给我发消息邮件:951076433@qq.com工作时间:周一至周五,9:30-18:30,节假日休息