51,407
社区成员
发帖
与我相关
我的任务
分享我感觉像是前端jsp页面出现了问题,只显示第一页后端有自己写了个小测试显示没有问题

但是前端JSP输出的时候,只显示第一页

数据库实体类
public class Article {
private int id;
private String title;
private String author;
private String article_content;
private Date date;
//get and set
}
分页模型
public class PageModel<E> {
//结果集
private List<E> list;
//查询记录数
private int totalRecords;
//每页多少条数据
private int pageSize;
//第几页
private int pageNo;
/**
* 总页数
* @return
*/
public int getTotalPages() {
return (totalRecords + pageSize - 1) / pageSize;
}
/**
* 取得首页
* @return
*/
public int getTopPageNo() {
return 1;
}
/**
* 上一页
* @return
*/
public int getPreviousPageNo() {
if (pageNo <= 1) {
return 1;
}
return pageNo - 1;
}
/**
* 下一页
* @return
*/
public int getNextPageNo() {
if (pageNo >= getBottomPageNo()) {
return getBottomPageNo();
}
return pageNo + 1;
}
/**
* 取得尾页
* @return
*/
public int getBottomPageNo() {
return getTotalPages();
}
/**
* get set函数
* @return
*/
public List<E> getList() {
return list;
}
public void setList(List<E> list) {
this.list = list;
}
public int getTotalRecords() {
return totalRecords;
}
public void setTotalRecords(int totalRecords) {
this.totalRecords = totalRecords;
}
public int getPageSize() {
return pageSize;
}
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
public int getPageNo() {
return pageNo;
}
public void setPageNo(int pageNo) {
this.pageNo = pageNo;
}
}
业务逻辑和链接数据库
public class ArticleDao {
public PageModel<Article> findData(String pageNo,String pageSize){
PageModel<Article> pageModel=null;
DatabaseUtil databaseUtil = new DatabaseUtil();
List<Article> list = new ArrayList<Article>();
Connection conn = databaseUtil.openConnection();
String sql1="select * from t_article limit ?,?";
String sql2="select count(*) from t_article";
PreparedStatement pstmt=null;
ResultSet rs1=null;
ResultSet rs2=null;
Article article = null;
try {
pstmt = conn.prepareStatement(sql1);
pstmt.setInt(1, (Integer.parseInt(pageNo)-1)*Integer.parseInt(pageSize));
pstmt.setInt(2, Integer.parseInt(pageSize));
rs1 = pstmt.executeQuery();
while(rs1.next()) {
article = new Article();
article.setId(rs1.getInt("id"));
article.setTitle(rs1.getString("title"));
article.setAuthor(rs1.getString("author"));
article.setArticle_content(rs1.getString("article_content"));
article.setDate(rs1.getDate("date"));
list.add(article);
}
rs2 = pstmt.executeQuery(sql2);
int total=0;
if(rs2.next()){
total=rs2.getInt(1);//总的数据条数
}
pageModel=new PageModel<Article>();
pageModel.setPageNo(Integer.parseInt(pageNo));
pageModel.setPageSize(Integer.parseInt(pageSize));
pageModel.setTotalRecords(total);
pageModel.setList(list);
} catch (SQLException e) {
e.printStackTrace();
}finally {
databaseUtil.closeConnection(conn);
databaseUtil.closePreparedStatement(pstmt);
databaseUtil.closeResultSet(rs1);
databaseUtil.closeResultSet(rs2);
}
return pageModel;
}
}
封装链接数据库
package com.chz.page;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class DatabaseUtil {
// JDBC 驱动名及数据库 URL
private static String JDBC_DRIVER;
private static String DB_URL;
// 数据库的用户名与密码,需要根据自己的设置
private static String USERNAME;
private static String PASSWORD;
static {
// MySQL 8.0 以下版本 - JDBC 驱动名及数据库 URL
// static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
// static final String DB_URL = "jdbc:mysql://localhost:3306/RUNOOB";
// MySQL 8.0 以上版本 - JDBC 驱动名及数据库 URL
// private static String JDBC_DRIVER = "com.mysql.cj.jdbc.Driver";
// private static String DB_URL =
// "jdbc:mysql://localhost:3306/stzg?useSSL=false&serverTimezone=UTC";
JDBC_DRIVER = "com.mysql.cj.jdbc.Driver";
DB_URL = "jdbc:mysql://******:3306/novel?useSSL=false&serverTimezone=UTC";
USERNAME = "root";
PASSWORD = "******";
}
public Connection openConnection() {
try {
Class.forName(JDBC_DRIVER);
return DriverManager.getConnection(DB_URL, USERNAME, PASSWORD);
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
public void closeConnection(Connection conn) {
if (conn != null) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
public void closePreparedStatement(PreparedStatement pstmt) {
if (pstmt != null) {
try {
pstmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
public void closeStatement(Statement stmt) {
if (stmt != null) {
try {
stmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
public void closeResultSet(ResultSet rs) {
if (rs != null) {
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
index.jsp页面
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@page import="java.util.Iterator"%>
<%@page import="java.util.List"%>
<%@page import="com.chz.page.*"%>
<%
String pageSize = (String) request.getAttribute("pageSize");
String pageNo = (String) request.getAttribute("pageNo");
if(pageSize == null){
//每页条数
pageSize = "20";
}
if(pageNo == null){
//当前页数
pageNo = "1";
}
request.setAttribute("pageSize", pageSize);
request.setAttribute("pageNo", pageNo);
ArticleDao articleDao = new ArticleDao();
PageModel<Article> pageModel = articleDao.findData(pageNo, pageSize);
List<Article> list = pageModel.getList();
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<table border="4" align="center" >
<tr>
<td align="center" colspan="4">文章信息</td>
</tr>
<tr>
<td>编号</td>
<td>作者</td>
<td>时间</td>
</tr>
<%
if(list==null||list.size()<1){
%>
<p align="center">还没有任何数据!</p>
<%
}else{
for(Iterator<Article> it = list.iterator();it.hasNext();){
Article article = it.next();
%>
<tr>
<td><%=article.getId() %></td>
<td><%=article.getAuthor() %></td>
<td><%=article.getDate() %></td>
</tr>
<%
}
}
%>
<tr>
<td align="center" colspan="4">
<a href="index.jsp?pageNo=<%=pageModel.getTopPageNo()%>&pageSize=<%=pageSize%>">首页</a>
<a href="index.jsp?pageNo=<%=pageModel.getPreviousPageNo()%>&pageSize=<%=pageSize%>">上一页</a>
<a href="index.jsp?pageNo=<%=pageModel.getNextPageNo()%>&pageSize=<%=pageSize%>">下一页</a>
<a href="index.jsp?pageNo=<%=pageModel.getBottomPageNo()%>&pageSize=<%=pageSize%>">尾页</a>
</td>
</tr>
</table>
</body>
</html>
大佬们帮忙看下什么情况呀~~
已经解决,是inde.jsp的问题
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@page import="java.util.Iterator"%>
<%@page import="java.util.List"%>
<%@page import="com.chz.page.*"%>
<%
String pageNo = request.getParameter("pageNo");
if(pageNo==null){
pageNo = "1";
}
String pageSize = "20";
ArticleDao articleDao = new ArticleDao();
PageModel<Article> pageModel = articleDao.findData(pageNo, pageSize);
List<Article> list = pageModel.getList();
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<table border="4" align="center" >
<tr>
<td align="center" colspan="4">文章信息</td>
</tr>
<tr>
<td>编号</td>
<td>作者</td>
<td>时间</td>
</tr>
<%
if(list==null||list.size()<1){
%>
<p align="center">还没有任何数据!</p>
<%
}else{
for(Iterator<Article> it = list.iterator();it.hasNext();){
Article article = it.next();
%>
<tr>
<td><%=article.getId() %></td>
<td><%=article.getAuthor() %></td>
<td><%=article.getDate() %></td>
</tr>
<%
}
}
%>
<tr>
<td align="center" colspan="4">
<a href="index.jsp?pageNo=<%=pageModel.getTopPageNo() %>">首页</a>
<a href="index.jsp?pageNo=<%=pageModel.getPreviousPageNo() %>">上一页</a>
<a href="index.jsp?pageNo=<%=pageModel.getNextPageNo() %>">下一页</a>
<a href="index.jsp?pageNo=<%=pageModel.getBottomPageNo() %>">尾页</a>
</td>
</tr>
</table>
</body>
</html>