大佬们能帮忙解决下JSP分页问题

反方向的无奈 2022-03-05 18:54:18

我感觉像是前端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>

大佬们帮忙看下什么情况呀~~

...全文
88 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
反方向的无奈 2022-03-05
  • 打赏
  • 举报
回复

已经解决,是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>


51,407

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧