知识大全 一个通用的JSP分页类,具有显示多组页码功能
Posted 语句
篇首语:道德可以弥补能力的不足,能力却难以掩盖道德的缺陷。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 一个通用的JSP分页类,具有显示多组页码功能相关的知识,希望对你有一定的参考价值。
一个通用的JSP分页类,具有显示多组页码功能 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
最近几天学习jsp觉得很好 写了个分页类 给大家分享一下 同时也请高手指点
第一部分 db MysqlConn 数据库链接类
/**********************************************************
路径 zon db MysqlConn
文件 MysqlConn java
用途 数据库连接
package db; import java sql *; import javax xml parsers *; import w c dom *; import xml sax SAXException; import java io *; //导入数据库操作的类 public class MysqlConn private Connection conn; //连接对象 private Statement stmt; //语句对象 private ResultSet rs; //结果集对象 private String MySqldriver=" mysql jdbc Driver"; //MYSQL Server驱动程序字符串 private String MySqlURL = "jdbc:mysql://"; //MYSQL Server连接字符串 String databasex; String webRealPath="D://zon//WebRoot//"; //根路径实际路径 用于读取数据库链接参数的配置文件 database xml // 定义数据库链接参数变量 String server="localhost"; String dbname="phpzon"; String user="admin"; String pass="admin"; String port=" "; String dbchara="utf "; String dbprefix="zon_"; //表前缀 public void setDatabasex(String databasex) this databasex = databasex; public String getDatabasex() return databasex; public void setWebRealPath(String webRealPath) this webRealPath = webRealPath; public String getWebRealPath() return webRealPath; /******************************************************************* * 用 mysql jdbc Driver 驱动 * 该方法取得连接所需各种参数 组成连接字符串 * 然后再建立连接* server;dbname user pass port * 分别表示MYSQL 服务器的地址 数据库名 用户名 密码 端口 * 本方法已作改造 直接通过配置文件 WEB INF//database xml 读取链接信息 ********************************************************************/ public Connection getMysqlConn() //根据数据库配置文件获得数据库链接参数 database xml //建立解析工厂 DocumentBuilderFactory factory = DocumentBuilderFactory newInstance(); factory setIgnoringElementContentWhitespace(true);//忽略元素内容中的空格 //创建解析器 DocumentBuilder dbxml; try dbxml = factory newDocumentBuilder(); //得到解析文件 Document doc; try doc = dbxml parse("file:///"+webRealPath+"WEB INF//database xml"); doc normalize(); //得到根元素 //Element root = doc getDocumentElement(); //得到所有db元素 //NodeList dbs = doc getElementsByTagName("db"); //NodeList dbType = doc getElementsByTagName("type"); NodeList dbDriver = doc getElementsByTagName("driver"); NodeList dbUrl = doc getElementsByTagName("url"); NodeList dbServer = doc getElementsByTagName("server"); NodeList dbPort =doc getElementsByTagName("port"); NodeList dbDbname =doc getElementsByTagName("dbname"); NodeList dbUser =doc getElementsByTagName("user"); NodeList dbPassword =doc getElementsByTagName("password"); NodeList dbChara =doc getElementsByTagName("chara"); NodeList dbPrefix =doc getElementsByTagName("prefix"); //获取各参数值 int i= ; MySqldriver = dbDriver item(i) getFirstChild() getNodeValue(); //MYSQl驱动程序 MySqldriver = " mysql jdbc Driver"; MySqlURL = dbUrl item(i) getFirstChild() getNodeValue(); //链接路径 "jdbc:mysql://"; server = dbServer item(i) getFirstChild() getNodeValue(); //数据库服务器地址 port = dbPort item(i) getFirstChild() getNodeValue(); //数据库端口 默认 dbname = dbDbname item(i) getFirstChild() getNodeValue(); //数据库名称 user = dbUser item(i) getFirstChild() getNodeValue(); //用户名 pass = dbPassword item(i) getFirstChild() getNodeValue(); //密码 dbchara = dbChara item(i) getFirstChild() getNodeValue(); //数据库编码 dbprefix = dbPrefix item(i) getFirstChild() getNodeValue(); //表名前缀 try//完整的连接字符串 MySqlURL=MySqlURL+server+":"+port+"/"+dbname+"?user="+user+"&password="+pass+"&useUnicode=true&characterEncoding="+dbchara; Class forName(MySqldriver); conn = DriverManager getConnection(MySqlURL); catch(Exception e) System out println("操作数据库出错 请仔细检查"); System err println(e getMessage()); catch (SAXException e) // TODO Auto generated catch block e printStackTrace(); catch (IOException e) // TODO Auto generated catch block e printStackTrace(); catch (ParserConfigurationException e ) // TODO Auto generated catch block e printStackTrace(); return conn; /* * 执行sql 语句 返回记录集 主要针对 select show语句 */ public ResultSet sqlQuery(String sql) sql=SetQuery(sql); Statement temStmt = null; //语句对象 ResultSet temRs = null; //结果集对象 Connection temConn=this getMysqlConn(); try temStmt=temConn createStatement(); //执行sql查询语句 得到记录集 temRs=temStmt executeQuery(sql); catch (SQLException e) // TODO Auto generated catch block e printStackTrace(); return temRs; /* * 执行Insert sql 语句 */ public void sqlInsert(String sql) sql=SetQuery(sql); try this getMysqlConn() createStatement() executeUpdate(sql); catch (SQLException e) // TODO Auto generated catch block e printStackTrace(); /* * 执行update sql 语句 */ public void sqlUpdate(String sql) sql=SetQuery(sql); try this getMysqlConn() createStatement() executeUpdate(sql); catch (SQLException e) // TODO Auto generated catch block e printStackTrace(); /* * 执行delete sql 语句 */ public void sqlDelete(String sql) sql=SetQuery(sql); try this getMysqlConn() createStatement() executeUpdate(sql); catch (SQLException e) // TODO Auto generated catch block e printStackTrace(); /* * 执行sql 语句 返回记录总数 主要针对 select语句 */ public int sqlTotalRow(String sql) Statement temStmt = null; //语句对象 ResultSet temRs = null; //结果集对象 int result = ; //结果值 Connection temConn=this getMysqlConn(); try temStmt=temConn createStatement(); //执行sql查询语句 得到记录集 temRs=temStmt executeQuery(sql); temRs last(); result = temRs getRow(); catch (SQLException e) // TODO Auto generated catch block e printStackTrace(); return result; //设置SQL语句 会自动把SQL语句里的#@__替换为 配置文件中的 表 前缀 zon_ public String SetQuery(String sql) String prefix="#@__"; sql = sql replace(prefix this dbprefix); return sql; //关闭数据库连接 public void close() try //rs close(); //stmt close(); conn close(); catch(SQLException sqlexception) sqlexception printStackTrace();
第二部分 db MysqlPages 分页类代码
/********************************************************** 路径 zon db MysqlPages 文件 MysqlPages java 用途 优化的分页 ***********************************************************/ package db; import java sql *; import db MysqlConn; //数据库链接类 /********************************************************** *功能 *标记 *作者 刘亚东 Yodon Liu *日期 下午 : : ***********************************************************/ public class MysqlPages int PageSize= ; //调用时可自定义变量 每页条数 int PageRows= ; //调用时可自定义变量 页码组 每组显示多少个页码编号 默认 实际显示数会自动+ 包含当前页码 int RowCount= ;//总条数 int PageCount= ;//总页数 int inPage= ; //当前页码默认值 int inRow= ; //本页查询开始行号 默认 String linkPage = "?"; //调用时可以自定义变量 页码链接页面 String webRealPath="/"; //网站真实根路径 通过jsp页面获得之后传递过来 //显示文字 默认 调用时可以自定义变量 String langs = "首页 上一页 下一页 尾页 共 条记录 页"; String[] langss= langs split(" "); String lang_first_page = langss[ ]; String lang_pre_page = langss[ ]; String lang_next_page = langss[ ]; String lang_end_page = langss[ ]; String lang_total = langss[ ]; String lang_record_number = langss[ ]; String lang_page = langss[ ]; //临时 String sql=""; String page=" "; private Statement stmt; //语句对象 private ResultSet rs; //结果集对象 //返回值 分页页码列表 String pagesInfo=""; /**** * 主方法 获得 分页列表字符串 * @return */ public String pageInfo() MysqlConn DBConn = new MysqlConn(); //创建数据库链接实例 可根据自己的实际情况修改 RowCount = DBConn sqlTotalRow(sql); //在MysqlConn中有一个 sqlTotalRow 方法 用于求记录总和(请根据自己的求记录总和的方式修改此处) PageCount=(RowCount+PageSize )/PageSize; if(page!=null) inPage=Integer parseInt(page); if(inPage< ) inPage= ; if(inPage>PageCount) inPage=PageCount; inRow = (inPage )*PageSize; sql=sql + " limit " + String valueOf(inRow) + " " + String valueOf(PageSize); rs=DBConn sqlQuery(sql); //页码显示部分 int PageRowsL = PageRows/ ; // 生成当前页码 左侧最大调用的页码数 int PageRowsR = PageRows PageRows/ ; // 生成当前页码 右侧最大调用的页码数 if(inPage<=PageRowsL) PageRowsL = inPage ; PageRowsR = PageRows inPage+ ; if(inPage+PageRowsR>PageCount) PageRowsL = PageRows (PageCount inPage); PageRowsR = PageCount inPage; int PageLs= ; //左侧开始最大页码号 int PageRs=PageCount; //左侧开始最大页码号 PageLs = ((inPage PageRowsL)>= )?inPage PageRowsL: ; //实际左侧第一个显示的页码 PageRs = ((inPage + PageRowsR)<=PageCount)?inPage+PageRowsR:PageCount; //实际右侧第一个显示的页码 pagesInfo = pagesInfo+("<div class=dh_pages><ul><li class=total>"+lang_total+""+RowCount+lang_record_number+" "+PageCount+lang_page+"</li>"); //首页 pagesInfo = pagesInfo+("<li><a href="/" mce_href="/"""+linkPage+"page= /">"+lang_first_page+"</a></li>"); //上一页 pagesInfo = pagesInfo+("<li><a href="/" mce_href="/"""+linkPage+"page="+(inPage )+"/">"+lang_pre_page+"</a></li>"); //左侧页码 if(PageLs!=inPage) for(int iL=PageLs;iL<inPage;iL++) pagesInfo = pagesInfo+("<li><a href="/" mce_href="/"""+linkPage+"page="+iL+"/">"+iL+"</a></li>"); //当前页码 pagesInfo = pagesInfo+("<li class=inpage><a href="/" mce_href="/"""+linkPage+"page="+inPage+"/">"+inPage+"</a></li>"); //右侧页码 if(PageRs!=inPage) for(int iR=inPage+ ;iR<=PageRs;iR++) pagesInfo = pagesInfo+("<li><a href="/" mce_href="/"""+linkPage+"page="+iR+"/">"+iR+"</a></li>"); //下一页 pagesInfo = pagesInfo+("<li><a href="/" mce_href="/"""+linkPage+"page="+(inPage+ )+"/">"+lang_next_page+"</a></li>"); //尾页 pagesInfo = pagesInfo+("<li><a href="/" mce_href="/"""+linkPage+"page="+PageCount+"/">"+lang_end_page+"</a></li>"); pagesInfo = pagesInfo+("</ul></div>"); return pagesInfo; public void setPage(String page) this page = page; public String getPage() return page; public void setSql(String sql) this sql = sql; public String getSql() return sql; public void setLinkPage(String linkPage) this linkPage = linkPage; public String getLinkPage() return linkPage; public void setPageSize(int PageSize) this PageSize = PageSize; public int getPageSize() return PageSize; public void setPageRows(int PageRows) this PageRows = PageRows; public int getPageRows() return PageRows; public void setLangs(String langs) this langs = langs; public String getLangs() return langs; public void setLang_first_page(String lang_first_page) this lang_first_page = lang_first_page; public String getLang_first_page() return lang_first_page; public void setLang_pre_page(String lang_pre_page) this lang_pre_page = lang_pre_page; public String getLang_pre_page() return lang_pre_page; public void setLang_next_page(String lang_next_page) this lang_next_page = lang_next_page; public String getLang_next_page() return lang_next_page; public void setLang_end_page(String lang_end_page) this lang_end_page = lang_end_page; public String getLang_end_page() return lang_end_page; public void setLang_total(String lang_total) this lang_total = lang_total; public String getLang_total() return lang_total; public void setLang_record_number(String lang_record_number) this lang_record_number = lang_record_number; public String getLang_record_number() return lang_record_number; public void setLang_page(String lang_page) this lang_page = lang_page; public String getLang_page() return lang_page; /* String lang_first_page = "首页"; String lang_pre_page = "上一页"; String lang_next_page = "下一页"; String lang_end_page = "尾页"; String lang_total = "共"; String lang_record_number = "条记录"; String lang_page = "页"; */ public void setWebRealPath(String webRealPath) this webRealPath = webRealPath; public String getWebRealPath() return webRealPath; public void setRs(ResultSet rs) this rs = rs; public ResultSet getRs() return rs;
第三部分 JSP页面 调用
<% //设置属性值 DBPages setPageSize( ); //每页条数 DBPages setPageRows( ); //每组页数 最好是偶数 会自动加上当前页码 //为不同的按钮设置 图片 也可以直接设置文字 如 首页 上一页 下一页 尾页 DBPages setLang_first_page("<img src= /themes/ mce_src="themes""+_dh_manage_themes+"/images/start gif border= >"); DBPages setLang_pre_page("<img src= /themes/ mce_src="themes""+_dh_manage_themes+"/images/previous gif border= >"); DBPages setLang_next_page("<img src= /themes/ mce_src="themes""+_dh_manage_themes+"/images/next gif border= >"); DBPages setLang_end_page("<img src= /themes/ mce_src="themes""+_dh_manage_themes+"/images/end gif border= >"); DBPages setSql("select * from admin "); //sql语句 //传递当前页码 DBPages setPage(request getParameter("page")); //执行并获取分页内容 String pageInfos = DBPages pageInfo(); //显示当前页面记录列表 ResultSet rs=DBPages getRs(); while(rs next()) out println(rs getString("admin_id")); out println(rs getString("admin_user")); %>
第四部分 样式表 用于控制页码行显示效果
/* 通用分页样式 */ dh_pages dh_pages ul float:left; padding: px px px px; dh_pages ul li float:left; font family:Tahoma; line height: px; margin right: px; dh_pages ul li a float:left; padding: px px px; color:# ; border bottom: px solid #EEE; dh_pages ul li a:hover color:# ; text decoration:none; padding: px px px; border bottom: px solid # ; dh_pages ul li inpage a pagebox ul li inpage a:hover color:#F ; padding: px px px; border bottom: px solid #F ; font weight:bold; /* 分页中总页码 总数样式 一般居左或居右对齐 */ dh_pages total float:right; line height: px; color:# ; dh_pages total strong color:# ; font weight:normal; margin: px px;
第五部分 附数据库链接参数配置文件 database xml
本例中读取数据库时使用了一个数据库链接的自定义配置文件 放在 WebRoot/WEB INF/ 目录下 其内容如下
cha138/Article/program/Java/JSP/201311/20090相关参考
一写一个分页类 usingSystem; &nb
通用ASPNET数据分页控件 对于几乎所有的数据表现Web应用来说组织好数据的显示方式避免给用户带来混乱的感觉就是最主要的目标之一每个页面显示条记录当然是可以接受的但每页显示条记录就很容易给用户
知识大全 使用lodop列印时,可以显示页码和总页数,可是要求首页不显示页码页数,
高分!使用lodop列印时,可以显示页码和总页数,可是要求首页不显示页码页数,你把第一页别做一个档案列印不行吗?EXcel2016forMac设定“页码-总页数”总是显示“总页数-总页数”主要是在空白
用Struts2实现列表显示和分页功能 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 以下是在前
publicstaticfinalStringsplitPages(intthePageStringqueryStringintcount intpageLength) intmaxPag
今天做了个基于jsp+oracle分页的实现对于初学者来说这是好的(看了后绝对可以自己实现动手试试把)但是对于有基础的只是温故下sql语句(没涉及到很好的分层)好了我们开始把它实现把 &
代码实例:JSP分页源程序 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! <%@pagec
<%@pageimport="javasql*javaio*javautil*"%><%@pagelanguage="java"pageEncoding="Big"%><
<%//变量声明javasqlConnectionsqlCon;//数据库连接对象javasqlStatementsqlStmt;//SQL语句对象javasqlResultSetsqlRs
可通过下拉框跳转到指定页 <scriptlanguage=javascript> functiongopage()