首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • MVC模式(JSP+JavaBean+Servlet)JSP分页代码! [已结贴,结贴人:mynameislyy]
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • mynameislyy
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    • 揭帖率:
    发表于:2007-10-04 18:22:38 楼主
    MVC模式(JSP+JavaBean+Servlet)JSP分页代码!
    20  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • ITshu
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2007-10-04 18:29:271楼 得分:20
    bean 不用说把
    然后是
    package tbit.pagination;

    import java.sql.*;
    import java.util.*;
    import tbit.dao.*;

    public abstract class Pagination {
    private String sql;

    private int rowsPerPage; // 每页显示的行数

    private int rowsCount; // 总行数

    private int pagesCount; // 总页数

    public void setRowsPerPage(int rowsPerPage) {
    this.rowsPerPage = rowsPerPage;
    }

    // 在设置SQL语句时计算总行数和总页数,
    // 这样总行数只要查询一次,可以提高效率!
    public void setSQL(String sql) throws SQLException {
    this.sql = sql;
    this.rowsCount = 0;
    this.pagesCount = 0;

    // 获取总行数并计算总页数
    this.rowsCount = countRows();
    this.pagesCount = countPages();
    }

    public String getSQL() {
    return sql;
    }

    public int getRowsPerPage() {
    return rowsPerPage;
    }

    public int getRowsCount() {
    return rowsCount;
    }

    public int getPagesCount() {
    return pagesCount;
    }

    public Collection getPage(int page) throws SQLException {
    Collection result=new ArrayList();

    Connection conn = DatabaseBean.getConnection();
    Statement stmt = conn.createStatement();

    // 根据页号计算起始行
    int startRow = (page - 1) * getRowsPerPage() + 1;
    int rows = this.getRowsPerPage();

    // 将SQL语句转换为特定数据库的定位行集SQL语句
    String pageSql = MySqlPageSQL.getPageSQL(this.sql, startRow, rows);
    ResultSet rs = stmt.executeQuery(pageSql);

    // 将结果集包装为对象集合
    result = packResultSet(rs);

    rs.close();
    stmt.close();
    conn.close();

    return result;
    }

    private int countRows() throws SQLException {
    String countSql = this.sql;
    countSql = countSql.toLowerCase();
    int fromPos = countSql.indexOf(" from ");
    countSql = countSql.substring(fromPos);
    countSql = "select count(*) " + countSql;

    Connection conn = DatabaseBean.getConnection();
    Statement stmt = conn.createStatement();
    ResultSet rs = stmt.executeQuery(countSql);

    rs.first();
    int count = rs.getInt(1);

    rs.close();
    stmt.close();
    conn.close();

    return count;
    }

    // 计算总页数
    private int countPages() {
    if ((rowsCount % rowsPerPage) == 0) {
    return rowsCount / rowsPerPage;
    } else {
    return (rowsCount / rowsPerPage + 1);
    }
    }

    // 在子类中将结果集包装为对象集合
    protected abstract Collection packResultSet(ResultSet rs) throws SQLException;

    }
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • ITshu
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2007-10-04 18:30:032楼 得分:0
    数据库数据
    package tbit.pagination;

    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.util.*;

    import tbit.bean.*;

    public class ProductPage extends Pagination {

    protected Collection packResultSet(ResultSet rs) throws SQLException {
        Collection <Product> list=new ArrayList <Product>();
    while(rs.next()){
    Product product=new Product();

    product.setId(rs.getInt("id"));
    product.setPnameid(rs.getInt("pname_id"));
    product.setPicpath(rs.getString("picpath"));
    list.add(product);
    list.add(product);
    }
    return list;
    }

    }
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • ITshu
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2007-10-04 18:31:563楼 得分:0
    没整理自己改改把
    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
        <%@page import="java.util.*" %>
    <%@page import="tbit.pagination.*" %>
    <%@page import="tbit.manage.*" %>
    <%@page import="tbit.bean.*" %>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <%
    if(session.getAttribute("admin")==null||session.getAttribute("admin")==""){
    response.sendRedirect("login.jsp");
    }
    %>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Insert title here </title>
    <script type="text/javascript">
          function Jumping(){
        document.PageForm.submit();
      return ;
      }

      function gotoPage(pagenum){
      document.PageForm.jumpPage.value = pagenum;
      document.PageForm.submit();
      return ;
      }

    function unselectall()
    {
    if(document.myform.chkAll.checked){
    document.myform.chkAll.checked = document.myform.chkAll.checked&0;
    }
    }

    function CheckAll(form)
    {
    for (var i=0;i <form.elements.length;i++)
    {
    var e = form.elements[i];
    if (e.Name != "chkAll"&&e.disabled==false)
    e.checked = form.chkAll.checked;
    }
    }
     
    </script>
    <script type="text/javascript" src="js/js.js">
    </script>
    <style type="text/css">
      @IMPORT url("css/css.css");
      @IMPORT url("css/tab.css");
    @IMPORT url("css/panda.css");
    </style>

    </head>
    <%
    int pageNo = 1;
    String strPage = request.getParameter("jumpPage");
    if (strPage != null) {
    pageNo = Integer.parseInt(strPage);
    }
    Pagination pageCtl = new ContactPage();
    pageCtl.setRowsPerPage(10);
    pageCtl.setSQL("select * from tbit_contactus");
    Collection contact = pageCtl.getPage(pageNo);
    Iterator links = contact.iterator();
    %>
    <body>
    <jsp:include flush="true" page="menu5.jsp"> </jsp:include>
    <form action="delcontact.jsp" method="post" name="form">
    <table width="95%" align="center" id="message_table" cellpadding="3" cellspacing="1"
    >
     
      <tr>
        <td width="5%"> <INPUT id="chkAll" onclick=CheckAll(this.form) type="checkbox" value="checkbox" name="chkAll">select all </td>
        <td width="15%" >Name </td>
        <td width="15%" >Company </td>
        <td width="15%" >Address </td>
        <td width="15%" >email </td>
        <td width="20%" >operation </td>
      </tr>

    <%
    while(links.hasNext()){
    ContactUs link=new ContactUs();
    link=(ContactUs)links.next();
    %>

      <tr>
        <td width="5%"> <input type="checkbox" name="del_con"
    value= <%=link.getId()%>> </td>
        <td width="15%"> <%=link.getName() %> </td>
        <td width="15%"> <%=link.getCompany() %> </td>
        <td width="15%"> <%=link.getAddress() %> </td>
        <td width="15%"> <%=link.getEmail() %>
        </td>
        <td width="20%">
        <a href="lookcontact.jsp?id= <%=link.getId()%>"> <font color="red">Look </font> </a>&nbsp;&#166;&nbsp;
        <a onclick="javascript:return confirm('你确认要删除吗?');"  href="delcontact.jsp?id= <%=link.getId()%>"> <font color="red">Delete </font> </a>
        </td>
      </tr>
    <%}%>
    <tr>
      <td align="left" colspan="6"> <input type="submit" value="delete select">
     
      </tr>
    </table>
    </form>
    <form action="contactus.jsp" method="post" name="PageForm">
    <table align="right" cellpadding="3">
    <tr>
    <td align="right">Total: <%=pageCtl.getRowsCount()%>&nbsp;&nbsp;|&nbsp;&nbsp; <%=pageNo%>/ <%=pageCtl.getPagesCount()%>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    </td>
    </tr>
    <tr>
    <td>
    <%
    if (pageNo == 1) {
    out.print("  First &nbsp; Pre&nbsp;  ");
    } else {
    %>  <a href="javascript:gotoPage(1)">First </a> &nbsp; <a
    href="javascript:gotoPage( <%=pageNo - 1%>)">pre </a> &nbsp; <%
    }
    %> <%
    if (pageNo == pageCtl.getPagesCount()) {
    out.print(" Next &nbsp;  Last  ");
    } else {
    %>  <a href="javascript:gotoPage( <%=pageNo + 1%>)">next </a> &nbsp;
    <a href="javascript:gotoPage( <%=pageCtl.getPagesCount()%>)">Last </a>
    <%
    }
    %> &nbsp;&nbsp;&nbsp; </td>
    </tr>
    <tr>
    <td align="right">&nbsp;Goto: <select name="jumpPage"
    onchange="Jumping()">
    <%
    for (int i = 1; i <= pageCtl.getPagesCount(); i++) {
    if (i == pageNo) {
    %>
    <option selected value= <%=i%>> <%=i%> </option>
    <%
    } else {
    %>
    <option value= <%=i%>> <%=i%> </option>
    <%
    }
    }
    %>
    </select>&nbsp;&nbsp;&nbsp;&nbsp; </td>
    </tr>
    </table>
    </form>
    <script language="JavaScript">
        tigra_tables('message_table', 1, 0, '#FFFFFF', '#DFF7FD', '#B0EBF9', '#90E3F7');
    </script>
    <jsp:include flush="true" page="footer.jsp"> </jsp:include>
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • ITshu
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2007-10-04 18:32:294楼 得分:0
    还有一个
    package tbit.pagination;


    public class MySqlPageSQL {

    private MySqlPageSQL() {
    }

    /**
    *
    * @param sql
    *            原始SQL语句
    * @param startRow
    *            起始行号
    * @param rows
    *            需要获取的行数
    * @return 数据库特定的定位行集SQL语句
    */
    public static String getPageSQL(String sql, int startRow, int rows) {
    String pageSql = sql + " limit " + (startRow - 1) + "," + rows;
    System.out.println(pageSql);
    return pageSql;
    }

    }
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • daoyongyu
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2007-11-19 16:01:585楼 得分:0
    顶顶顶一下!!!
    修改 删除 举报 引用 回复

    网站简介广告服务网站地图帮助联系方式诚聘英才English 问题报告
    北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
    世纪乐知(北京)网络技术有限公司 提供技术支持
    Copyright © 2000-2008, CSDN.NET, All Rights Reserved