首页 > 编程 > JSP > 正文

Jsp+struts分页显示源码

2024-09-05 00:17:21
字体:
来源:转载
供稿:网友
主要有三个文件:show.jsp、ShowAction.java、PageInformation.java

环境是:JDK1.6+mysql5.0+jboss4.0+struts 2.0.11

还需完善的地方:如果没有前一页、后一页,直接把这个链接在页面上屏蔽掉
因为不想在Action里面有太多的链接数据库的代码,所以另外搞了一个PageInformation类,来完成数据库查询工作。

具体代码如下:
package com.ClockWise.ray.jsp;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
/* 
 * 此类用来完成数据库操作 
 * */
public class PageInformation { 
             private int pageSize;//每一页包含的条目个数 
             private int totalRows;//一共有多少行 
             private int totalPages;//一共有多少页 
             private int currentPage=1;//初始化当前页为第一页 
             private boolean hasPrevious = false;//是否有前页,尚未使用,有待完善 
             private boolean hasNext = false;//是否有后页,尚未使用,有待完善 
             private ArrayList<User> list = new ArrayList<User>();//存放结果的列表 
             private DatabaseGeneralServices dgs;//自己写的获得connection的类,可以自己实现 
             private Connection conn;           
             private PreparedStatement ps; 
             private ResultSet rs; 

             public PageInformation(){ 
             dgs = DatabaseGeneralServices.getInstance(); 
             pageSize = 20;//每页设置为20条 
             totalRows = initRowCount();//得到总行数,比较粗犷,不知有什么灵巧的方法,比如select count(*)... 
             totalPages =((totalRows+pageSize)-1)/pageSize;//获得总页数 
             initList(1); 
               } 
            /* 
             * 每次查询只取20条,封装为一个列表,返回。参数是当前页号,在构造函数中默认为第一页 
      * */ 
             private void initList(int currentPage){ 
                 list.removeAll(list); 
             conn = dgs.getConnection(); 
             try{ 
                        ps = conn.prepareStatement("Select * FROM jsptest LIMIT ?,20"); 
                        int temp = (currentPage-1)*20; 
                        ps.setInt(1, temp); 
                        rs = ps.executeQuery(); 
                        while (rs.next()){ 
                                 User user = new User(); 
                                 user.setId(rs.getString(1)); 
                                 user.setName(rs.getString(2)); 
                                 list.add(user); 
                        } 
             }catch(SQLException e){ 
                        e.printStackTrace(); 
             }finally{ 
                        dgs.closeConnection(rs, ps, conn); 
             } 
             } 

共3页上一页123下一页
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表