下面是一份JavaWeb分页的实现代码实例攻略。
1. 需求分析
在网站中,当数据量较大时,我们需要把它分页显示,从而提高用户体验。而JavaWeb框架中可以使用JSP来实现分页的功能。具体来说,我们需要针对以下几个步骤实现分页功能。
2. 分页实现步骤
2.1 准备工作
首先,我们需要创建一个数据表来存储数据,其次我们需要创建一个JavaBean来封装数据,如下:
public class Student {
private int id;
private String name;
private int age;
// 必须要有getter和setter方法
// ...
}
2.2 实现数据查询
其次,我们需要对数据库进行查询操作,可以使用JDBC或MyBatis来实现。以JDBC为例,代码如下:
public List<Student> queryByPage(int pageSize, int pageNum) {
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;
try {
Class.forName("com.mysql.jdbc.Driver");
String url = "jdbc:mysql://localhost:3306/test";
String user = "root";
String password = "123456";
conn = DriverManager.getConnection(url, user, password);
String sql = "select * from student limit ?, ?";
ps = conn.prepareStatement(sql);
ps.setInt(1, (pageNum - 1) * pageSize); // 计算从哪行开始查询
ps.setInt(2, pageSize); // 每页显示的行数
rs = ps.executeQuery();
List<Student> list = new ArrayList<>();
while (rs.next()) {
Student student = new Student();
student.setId(rs.getInt("id"));
student.setName(rs.getString("name"));
student.setAge(rs.getInt("age"));
list.add(student);
}
return list;
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (rs != null) rs.close();
if (ps != null) ps.close();
if (conn != null) conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
return null;
}
2.3 显示数据
通过查询,我们获得了当前页的数据,接下来就是将其展示给用户。在JSP中,我们可以使用JSTL和EL表达式来操作JavaBean对象。比如:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<title>分页</title>
</head>
<body>
<table border="1">
<tr>
<th>ID</th>
<th>姓名</th>
<th>年龄</th>
</tr>
<c:forEach items="${students}" var="student">
<tr>
<td>${student.id}</td>
<td>${student.name}</td>
<td>${student.age}</td>
</tr>
</c:forEach>
</table>
</body>
</html>
在这里,我们使用了
2.4 实现分页功能
最后一步是实现分页功能,这里我们可以使用Bootstrap的分页组件。具体实现如下:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<title>分页</title>
<link rel="stylesheet" href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css">
</head>
<body>
<table class="table table-striped">
<tr>
<th>ID</th>
<th>姓名</th>
<th>年龄</th>
</tr>
<c:forEach items="${students}" var="student">
<tr>
<td>${student.id}</td>
<td>${student.name}</td>
<td>${student.age}</td>
</tr>
</c:forEach>
</table>
<ul class="pagination">
<c:if test="${currentPage > 1}">
<li><a href="?pageNum=${currentPage-1}">«</a></li>
</c:if>
<c:forEach begin="1" end="${totalPage}" var="i">
<c:choose>
<c:when test="${i eq currentPage}">
<li class="active"><a href="?pageNum=${i}">${i}</a></li>
</c:when>
<c:otherwise>
<li><a href="?pageNum=${i}">${i}</a></li>
</c:otherwise>
</c:choose>
</c:forEach>
<c:if test="${currentPage < totalPage}">
<li><a href="?pageNum=${currentPage+1}">»</a></li>
</c:if>
</ul>
</body>
</html>
在这里,我们使用了
3. 示例说明
以上是对JavaWeb分页的实现代码实例的完整攻略,下面分别列举两个示例说明。
示例1:简单分页
比如我们要在页面上显示10条数据,每页只显示3条数据,那么访问第1页只显示从第0-2条数据,访问第2页只显示从第3-5条数据,访问第3页只显示从第6-8条数据,访问第4页只显示第9条数据。
示例2:正常分页
比如我们要在页面上显示100条数据,每页只显示10条数据,那么访问第1页只显示从第0-9条数据,访问第2页只显示从第10-19条数据,访问第3页只显示从第20-29条数据,访问第4页只显示第30-39条数据,以此类推。同时,如果当前数据不足10条时(比如最后一页只有7条数据),就只显示最后7条。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JavaWeb分页的实现代码实例 - Python技术站