关于jsp页面中的分页显示
- 格式:docx
- 大小:22.81 KB
- 文档页数:3
ShowRecordByPage.javapackage database.operation;import java.sql.*;import com.sun.rowset.*;public class ShowRecordByPage{ int pageSize=10; //每页显示的记录数int pageAllCount=0; //分页后的总页数int showPage=1 ; //当前显示页StringBuffer presentPageResult; //显示当前页内容CachedRowSetImpl rowSet; //用于存储ResultSet对象String databaseName="user"; //数据库名称String tableName="user_tab"; //表的名字String user="sa" ; //用户String password="123" ; //密码String 字段[]=new String[100] ;int 字段个数=0;public ShowRecordByPage(){ presentPageResult=new StringBuffer();try{ Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver").newIns tance();}catch(Exception e){}}public void setPageSize(int size){ pageSize=size;字段个数=0;Stringuri="jdbc:sqlserver://127.0.0.1:1433;DatabaseName="+databaseName;try{ Connectioncon=DriverManager.getConnection(uri,user,password);DatabaseMetaData metadata=con.getMetaData();ResultSet rs1=metadata.getColumns(null,null,tableName,null);int k=0;while(rs1.next()){ 字段个数++;字段[k]=rs1.getString(4); //获取字段的名字k++;}Statementsql=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY);ResultSet rs=sql.executeQuery("SELECT * FROM"+tableName);rowSet=new CachedRowSetImpl(); //创建行集对象rowSet.populate(rs);con.close(); //关闭连接st();int m=rowSet.getRow(); //总行数int n=pageSize;pageAllCount=((m%n)==0)?(m/n):(m/n+1);}catch(Exception exp){}}public int getPageSize(){ return pageSize;}public int getPageAllCount(){ return pageAllCount;}public void setShowPage(int n){ showPage=n;}public int getShowPage(){ return showPage;}public StringBuffer getPresentPageResult(){ if(showPage>pageAllCount)showPage=1;if(showPage<=0)showPage=pageAllCount;presentPageResult=show(showPage);return presentPageResult;}public StringBuffer show(int page){ StringBuffer str=new StringBuffer();str.append("<table border=1>");str.append("<tr>");for(int i=0;i<字段个数;i++){ str.append("<th>"+字段[i]+"</th>");}str.append("</tr>");try{ rowSet.absolute((page-1)*pageSize+1);for(int i=1;i<=pageSize;i++){ str.append("<tr>");for(int k=1;k<=字段个数;k++){ str.append("<td>"+rowSet.getString(k)+"</td>");}str.append("</tr>");rowSet.next();}}catch(SQLException exp){}str.append("</table>");return str;}public void setDatabaseName(String s){ databaseName=s.trim();}public String getDatabaseName(){ return databaseName;}public void setTableName(String s){ tableName=s.trim();}public String getTableName(){ return tableName;}public void setPassword(String s){ password=s.trim();;}public void setUser(String s){ user=s.trim();}public String getUser(){ return user;}}showByPage.jsp<%@ page contentType="text/html;charset=GB2312" %><%@ page import="java.sql.*" %><%@ page import="database.operation.*" %><jsp:useBean id="look" class="database.operation.ShowRecordByPage" scope="session" /><jsp:setProperty name="look" property="databaseName" value="factory" /><jsp:setProperty name="look" property="tableName" value="employee" /> <jsp:setProperty name="look" property="user" value="sa" /><jsp:setProperty name="look" property="password" value="sa" /><jsp:setProperty name="look" property="pageSize" value="2" /><HTML><BODY>数据库<jsp:getProperty name= "look" property="databaseName"/>中<jsp:getProperty name= "look" property="tableName"/>表的记录将被分页显示。
基于Java Web技术的手机销售网站的设计与实现作者:***来源:《电脑知识与技术》2023年第32期关键词:Java Web 技术;MVC 设计模式;MySQL;手机销售中图分类号:TP311.1 文献标识码:A文章编号:1009-3044(2023)32-0047-030 引言科技的进步推动了5G的发展,人们的工作生活越来越离不开智能手机和互联网,随时随地网购成为一种主流,同时传统销售模式的弊端逐漸显露出来[1]。
因此,本文主要是利用Java Web技术构建一个简单的手机销售网站,既能体现Web在各功能模块开发中的应用,又能展示MVC的设计模式[2]及数据在MySQL数据库中的存储,体现了Java Web的优势。
1. 系统设计采用的相关技术1.1 JavaJava是一种面向对象的编程语言,它保留了C++的优点,去除了C++较为复杂的多继承、指针等概念。
它具有可移植性强、安全性高、简单易用等优点,可以用于编写各种类型的程序,如嵌入式系统应用程序、分布式系统程序、Web应用程序、桌面应用程序等[3]。
1.2 JSP 技术JSP技术指在传统的HTML网站中直接植入Java片段和JSP标志,从而形成的JSP文件。
从JSP引擎中下载JSP文档,并将它编辑成可运行的种类,随后将原始申请上传输给Servlet,而Web服务器的组件也会自动调出Servlet引擎,将Servlet下载并运行。
JSP是一种Java Servlet,主要用于实现Java Web应用程序的用户界面部分。
1.3 MySQL 数据库MySQL Server 是目前的主流数据库软件,使用JDBC 驱动程序连接MySQL 数据库[4]。
MySQL Server是目前的主流数据库软件,它不仅支持众多编程语言,而且作为开源软件,服务器上传速度快、易操作。
1.4 Tomact 服务器Tomcat是一个Servlet容器,也是一个免费开源的工具。
分页的实现原理:1.获得需要显示的总的记录数rowCount—》从数据库中取2.设定每页最多显示的记录数size—》103.指定显示的页码:num 作为参数得到4.根据rowCount,size,num可计算出其余的元素:a)本页面从多少行记录开始:startRow = (this.num-1) * size ;b)共有多少页:pageCount = (int) Math.ceil((double)rowCount/size);c)下一页:next=Math.min( this.pageCount, this.num+1)d)上一页:prev = Math.max(1 , this.num-1)e)页号控制元素:numCount:每页最多显示多少页号。
(一共显示numCount+1个页号)start = Math.max(this.num-numCount/2, first); //本页显示页号从多少页开始end = Math.min(start+numCount, last); //本页显示页号在多少页结束页号控制:if(end-start < numCount){ //当本页总显示的页号数不够numCount时,如何计算起始页号。
start = Math.max(end-numCount, 1);}分页实现步骤:1.将Page类引入。
需要自己修改的可自行修改。
package com.puckasoft.video.util;public class Page {private int num; //当前页号, 采用自然数计数 1,2,3,...private int size; //页面大小:一个页面显示多少个数据private int rowCount;//数据总数:一共有多少个数据private int pageCount; // 页面总数private int startRow;//当前页面开始行, 第一行是0行private int first = 1;//第一页页号private int last;//最后页页号private int next;//下一页页号private int prev;//前页页号private int start;//页号式导航, 起始页号private int end;//页号式导航, 结束页号private int numCount = 10;//页号式导航, 最多显示页号数量为numCount+1;这里显示11页。
JSP 实现数据的分页显示在JSP中,数据的分页显示非常实用,它的应用可以使数据表中的多条数据实现分页显示,使数据的显示更加条理清晰。
本扩展练习的目的是:使数据表bookinfo 中的数据实现分页显示,并实现数据的翻页功能。
实例中有两个文件Pagescount.jsp 和Pages.jsp,其中Pagescount.jsp实现数据库的连接并查询数据返回数据集,同时设置每页显示的记录数和计算数据页数。
Pages.jsp实现数据的分页显示。
(1)创建一个命名为Pagescount.jsp的信息查询页面。
【新建】|【JSP (advanced Templates)】命令,弹出【新建JSP页面】对话框,在对话框的文件名称中输入Pagescount.jsp,单击【完成】按钮。
(2)添加JSP文件要用到的Java类包、编码。
查询bookinfo数据表中数据并返回数据集,最后,计算数据集中的记录数并设置显示的页数。
(4)创建一个命名为Pages.jsp的信息查询页面。
【新建】|【JSP (advanced Templates)】命令,弹出【新建JSP页面】对话框,在对话框的文件名称中输入Pages.jsp,单击【完成】按钮。
(5)添加JSP文件要用到的Java类包、编码。
(6)在JSP文件中输出如下内容并保存。
</TD><%}%><TD Width=150><FORM action=Pages.jsp method=POST>到<INPUT type="text" name=ToPage style="HEIGHT: 25px; WIDTH: 40px"value=<%= ShowPage%> > 页</FORM></TD></TR></TABLE></CENTER></BODY></HTML>(7)执行上述代码,结果如图10-18所示。
JSP课程各章节选择题答案解析第⼀章1)如果做动态⽹站开发,以下()可以作为服务器端脚本语⾔。
A.HTML B.JSP C.JavaScript D.Java2)在设计Web项⽬的⽬录结构时,⼀般吧JSP 和HTML⽂件放在()下。
A.src⽬录B.⽂档根⽬录或其⼦⽂件下C.META-INT⽬录D.WEB-INF⽬录3)在Web项⽬的⽬录结构中,web.xml⽂件位于()中。
A.src⽬录B.⽂档根⽬录C.META-INF⽬录D.WEB-INF⽬录4)下⾯对于B/S架构与C/S架构的描述错误的是()。
A.B/S架构解决了C/S架构的弊端,因⽽在程序开发中将会逐步取代C/S架构B.B/S机构是基于internet⽹络实现的,使得⽤户访问的范围扩⼤C.C/S架构师基于局域⽹实现的,当程序发⽣改的后,需要对每⼀个客户端进⾏维护D.C/S可以设计出丰富的界⾯,⽽B/S 则相对处于劣势5)以下选项中()是正确的URL,(选两项)A./doc/69c0f9a1f71fb7360b4c2e3f5727a5e9856a270d.html /talk/talk1.htmB.ftp:///doc/69c0f9a1f71fb7360b4c2e3f5727a5e9856a270d.htmlC./doc/69c0f9a1f71fb7360b4c2e3f5727a5e9856a270d.html D./news/welcome.html第⼆章6)在某个JSP页⾯中存在这样⼀⾏代码,<%= “2” + “4” %> 运⾏该JSP后,以下说法正确的是()。
A.这⾏代码没有对应的输出B.这⾏代码对应的输出时6C.这⾏代码对应的输出时24 D.这⾏代码将引发错误7)与page指令<%@ page import= “java.util.*, java.text.* “ %> 等价的是()。
A.<%@ page import= “java.util.* %><%@ page import= “java.text.* “ %>B.<%@ page import= “java.util.*”, import= “java.text.* “ %>C.<%@ page import= “java.util.* “; %><%@ page import= “java.text.* “; %>D.<%@ page import= “java.util.* ; java.text.* “ %>8)下列选项中,()是正确的表达式。
Java web开发试卷及答案一、选择题(每小题只有一个正确答案,每题2分,共40分)1.在下列的Html中,哪个是最大的标题()。
A、<h6>B、<head>C、<heading>D、<h1>2.以下选项中,哪个全都是表格标签()。
A、<table> <head> <tfoot>B、<table> <tr> <td>C、<table> <tr> <tt>3.在注册页面register.jsp页面中有如下代码<form action=”regServlet” method=”post”> 请选择爱好:<input type=”checkbox” name=”hobby” value=”王者荣耀” /><input type=”checkbox” name=”hobby” value=”运动” /><input type=”checkbox” name=”hobby” value=”看书” /><input type=”checkbox” name=”hobby” value=”旅游” /><input type=”submit value=”提交” /></form> 下列哪种方式是后台正确获取爱好的方法 ( )。
A、String hobby=request.getParameter(“hobby”);B、String hobby=request.getParameterValues(“hobby”);C、String[] hobby=request.getParameterValues(“hobby”);D、String[] hobby=request.getParameter(“hobby”);4.下列哪个HTML属性可以用来定义内联样式( )A、fontB、classC、stylesD、style5.写Hello World 正确的javascript语法是 ( )。
最简单的方法用sql实现:select * from table limit start,pageNum说明:start:取数据的定位点[开始是从0开始]pageNum:每次取多少比如:start=0|ageNum=5那么就是说,取1-6 条数据,通过程序实现:jdbc2.0可以通过指针定位List resultlist=new Vector();Connection conn = null;Statement ps = null;ResultSet rs=null;conn=ds.getConnection();ps=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ ONL Y);rs=ps.executeQuery(sql);if(Start > 0)rs.absolute(Start);//定位Address address;for(int recCount = 0; recCount++ < resultPage && rs.next();resultlist.add(address)){//从定位开始,取resultPage数据,先放在一个对象中,然后放在一个list中,这个对象可以是一个hashtable也可以是一个普通的javabean,用来存储数据}JSP+Servlet分页2009-06-12 15:33 JSP+Servlet分页1) 建立一个pojo类,用来向JSP页面传递数据,使用该类的Getter方法获得相应的属性值。
---------------------------------------------------------------------------------public class UserInfo extends BasePojo {private Long userid;private String usertype;private String userurl;private String userdetail;private String username;private String contact;public Long getUserid() {return userid;}public void setUserid(Long userid) {erid = userid;}public String getusertype() {return usertype;}public void setUsertype(String usertype) {ertype = usertype;}public String getUserurl() {return userurl;}public void setUserurl(String userurl) {erurl = userurl;}public String getUserdetail() {return userdetail;}public void setUserdetail(String userdetail) {erdetail = userdetail;}public String getUsername() {return username;}public void setUsername(String username) {ername = username;}public String getContact() {return contact;}public void setContact(String contact) {this.contact = contact;}}---------------------------------------------------------------------------------2) 通过查询获得所有对象,然后把每个对象依次赋给一个pojo类,通过循环吧每个pojo类添加到一个list里面。
JSP试题-带答案1、下面哪一个不是JSP本身已加载的基本类(B)A、.*B、.*C、.*D、、以下关于JavaBeans的说法中,错误的是(B)。
A、JavaBeans是基于JA V A语言的。
B、JavaBeans是JSP的内置对象之一。
C、JavaBeans是一种Java类。
D、JavaBeans是一个可重复使用的软件组件。
3、下面的说法错误的是:(D)A Jsp可以处理动态内容和静态内容B 在Jsp最终会编译成字节码后执行C 在jsp中可以使用脚本控制Html的标签生成D Jsp中不能使用与数据库建立连接 B. 提交SQL语句C. 处理查询结果D. 数据库维护管理5、JSP 页面经过编译之后,将创建一个(B)A.applet B.severlet C.application D.exe文件6、以下对象中的(D )不是JSP的内置对象。
A、requestB、sessionC、applicationD、bean7、在JSP中,内置对象(B)封装了用户提交的信息,使用该对象可获取用户提交的信息。
A、sessionB、requestC、responseD、out8、request对象可以使用( A )方法获取表单中某输入框提交的信息。
A、getParameter(String s)B、getValue(String s)C、getParameterNames(String s)D、getParameterValue(String s)9、JSP的内置对象中( A )对象可对客户的请求作出动态响应,向客户端发送数据。
A、responseB、requestC、applicationD、out10、以下方法,哪个可使session无效(A )A、(String key)B、()C、(String key)D、(String key)11、application对象能在(C )间共享。
A、某个访问者所访问的当前页面B、某个访问者所访问的网站的各个页面之间C、该服务器上的所有的访问者的所有jsp页面D、该服务器上的所有的访问者的所有jsp页面和Java程序12、在JSP页面中使用bean,我们必须使用JSP动作标签( A )。
数据在前端显⽰的分页技术1.实体⼯具类/*** 分页⼯具类.泛型类*/public class PageUtil<T> {//属性private int pageNumber;//总记录数private int pageCount;//总页数private int pageIndex;//当前页private int pageSize;//每页⼤⼩private List<T> list;//当前页的数据public int getPageNumber() {return pageNumber;}public int getPageCount() {return pageCount;}public int getPageIndex() {return pageIndex;}public int getPageSize() {return pageSize;}public List<T> getList() {return list;}public void setPageNumber(int pageNumber) {this.pageNumber = pageNumber;}public void setPageCount(int pageCount) {this.pageCount = pageCount;}public void setPageIndex(int pageIndex) {this.pageIndex = pageIndex;}public void setPageSize(int pageSize) {this.pageSize = pageSize;}public void setList(List<T> list) {this.list = list;}}2.分页显⽰controller// 分页显⽰列表@RequestMapping("list")public ModelAndView list(HttpServletRequest request, Model model,HttpSession session,@RequestParam(value="name",required=false) String name) { System.out.println("--------------------+"+name+"++------------------------");session.setAttribute("name", name);int pageIndex = 1;// 设置初始的当前页,页⾯显⽰的都是第⼀页int pageSize = 5;// 设置每⼀页显⽰⼏条数据,⽤于计算总页数,此处设置的值必须与sql语句的limit最后的数值⼀样System.out.println("员⼯列表");PageUtil<Member> pageUtil = new PageUtil<Member>();// 初始化⼯具类if (request.getParameter("pageIndex") != null) {pageIndex = Integer.parseInt(request.getParameter("pageIndex"));} // 对页⾯上的分页标签传的值,进⾏获取,也是就点击'上⼀页或者下⼀页'传过来的pageindexpageUtil.setPageIndex(pageIndex);// 保存⾄⼯具类,当前页数int number = memberBiz.getRowCount();// 调⽤service层⽅法计算出总数据量,就是多少条数据.//System.out.println("------------------------------"+number);pageUtil.setPageNumber(number);// 保存⾄⼯具类,总记录数pageUtil.setPageSize(pageSize);// 保存⾄⼯具类,⼀页⼏条pageUtil.setPageCount((int) Math.ceil((double) (pageUtil.getPageNumber() / pageUtil.getPageSize())) + 1);// 计算出总页数,并封装到⼯具类int index = (pageIndex - 1) * pageSize;// 计算出每⼀页从数据库中第⼏条数据开始取值,也就是limit后⾯的第⼀个数字List<Member> list = memberBiz.findAllMember(name, index);// 调⽤service层的⽅法,取得数据库中的值pageUtil.setList(list);// 保存到⼯具类中的集合model.addAttribute("pageUtil", pageUtil);// 传递到页⾯,存⼊值栈中model.addAttribute("members", list);//System.out.println("-------------------------");//System.out.println(list);return new ModelAndView("memberlist");// 跳转的相关页⾯}3.前端jsp页⾯<%@ page contentType="text/html;charset=UTF-8" language="java" %><%@ taglib prefix="c" uri="/jsp/jstl/core" %><%@ taglib prefix="fmt" uri="/jsp/jstl/fmt"%><%pageContext.setAttribute("APP_PATH", request.getContextPath());%><html><head><meta charset="utf-8"><title>管理员查看</title><meta name="viewport" content="width=device-width,initial-scale=1,user-scalable=no"><link rel="stylesheet" type="text/css" href="${APP_PATH }/css/bootstrap.min.css"><link rel="stylesheet" type="text/css" href="${APP_PATH }/css/bootstrapValidator.css"><style>.table_div{ width:90%; margin:0 auto;}</style><script type="text/javascript">function delete_alert(){alert("您确定删除?")}</script></head><body class="table-responsive"><!-- style="margin: 30px" --><!--⾯包屑导航--><div><ul class="breadcrumb"><li><a href="${pageContext.request.contextPath}/adminholle.jsp">⾸页</a></li><li class="active">⽤户管理</li></ul></div><div class="row search"><div class="col-md-6"><form action="${pageContext.request.contextPath}/member/list.do" method="post"><div class="input-group" style="width: 300px"><input type="text" class="form-control" name="name" value="${name}" placeholder="请输⼊要查询的⽤户名..."><span class="input-group-btn"><button class="btn btn-default" type="submit"><span class="glyphicon glyphicon-search"></span> 查询</button> </span></div></form></div><div class="text-right" style="width: 87%;height: 30px;"><a class="btn btn-success active btn-xs" id="add_btn" href="${pageContext.request.contextPath}/memberadd.jsp">添加</a> </div></div><%-- <div class="text-right" style="width: 87%;height: 30px;"><a class="btn btn-success active btn-xs" id="add_btn" href="${pageContext.request.contextPath}/adminsave.jsp">添加</a> </div> --%><!--table表单层--><div class="table_div"><table class="table table-striped table-bordered table-hover" width="1200px"><thead><tr><th align="center">会员编号</th><th align="center">⽤户名</th><th align="center">密码</th><th align="center">姓名</th><th align="center">性别</th><th align="center">⾝份证号</th><th align="center">移动电话</th><th align="center">Email</th><th align="center">住址</th><th align="center">操作</th></tr></thead><tbody><tr><c:forEach var="members" items="${members}"><tr><td align="center">${members.id}</td><td align="center">${ername}</td><td align="center">${members.password}</td><td align="center">${}</td><td align="center">${members.sex}</td><td align="center">${members.idNumber}</td><td align="center">${members.phone}</td><td align="center">${members.email}</td><td align="center">${members.address}</td><td align="center"> <a class="btn btn-danger active btn-xs" onclick="delete_alert()" href="${pageContext.request.contextPath}/member/delete.do?id=${members.id}">删除</a><a class="btn btn-info active btn-xs" href="${pageContext.request.contextPath}/member/updateselect.do?id=${members.id}">修改</a></td></tr></c:forEach></tr></tbody></table><div style="width: 79%;height:2px;"><!--页数显⽰-->共<font size="3" color="red">${pageUtil.pageNumber}</font>条,当前第<font size="3" color="red">${pageUtil.pageIndex}</font>页</div><!--分页--><div style="width: 93%;" class="text-right"><ul class="pagination"><li><a href="${APP_PATH }/member/list.do?pageIndex=1">⾸页</a></li><li><a href="${APP_PATH }/member/list.do?pageIndex=${pageUtil.pageIndex>1?pageUtil.pageIndex-1:1}" class='pre'>上⼀页</a></li><c:forEach begin="1" end="${pageUtil.pageCount}" var="i"><li><a href="${APP_PATH }/member/list.do?pageIndex=${i}" style="text-decoration: none;">${i}</a></li></c:forEach><li><a href="${APP_PATH }/member/list.do?pageIndex=${pageUtil.pageIndex<pageUtil.pageCount?pageUtil.pageIndex+1:pageUtil.pageCount}" class='next'>下⼀页</a></li> <li><a href="${APP_PATH }/member/list.do?pageIndex=${pageUtil.pageCount}" class='last' >末页</a></li></ul></div></div><script type="text/javascript" src="${APP_PATH }/js/jquery-3.2.1.min.js"></script><script type="text/javascript" src="${APP_PATH }/js/bootstrap.min.js"></script></body></html>4.数据库 dao层 service 省略。
JSP页面中分页显示解决方法之一最近在做一个留言板系统,有点像网上论坛吧,自己只是弄来玩玩,但是当我在数据库中插入很多数据后,就遇到了一个很有意思的问题的,那就是怎么分页来显示这些数据,我在网上看了很多的分页方法,那也是各有千秋,平分秋色。
但是没有一个能像论坛上做的那么好的分页显示方法。
也许是有,只是我没有看到而已。
1.我首先说说这个论坛分页基本设计思路。
大家都知道,论坛分页不可能是显示完全部的页码,而是按照一定的规律来实现的,大概有以下要求。
1.首先要判断页面的总数(Totalpages),如果是Totalpages<=5(当然你也可以自定义)的话,那么就直接把所有的页码都显示出来,如这样【上一页12 3 4 5 下一页】,但是当Totalpages超过一定的数值后,就要按一定的规律来处理一下了,2.当Totalpages>5以后,那么就需要隐藏(不显示)一些页码了,如果在显示部分的中间还有页码,就用(…)来代替,如【上一页1 2 … 5 6 7 …29 30下一页】,【上一页1 2 …21 22 23 …29 30下一页】,3.最后还有一个问题要处理,那就当前页是最后五页的话,那么按照习惯,应该这样显示,【上一页1 2 …26 27 28 29 30下一页】。
<!--分页部分 --><!—使用说明。
TotalPages是总页数,你通过不同数据库采用不同分页方法,在通过在Jsp页面中,把你取得的总页数赋值给TotalPages如(<%TotalPages=object.getTotalPages();%/),在使用当前页(PageNo)传入函数后,在去数据库查询后返回一个List。
如我自己是这样弄的<%if(request.getParameter("PageNo")!=null){PageNo=Integer.parseInt(request.getParameter("PageNo"));}PageModel pageModel=new PageModel();ArrayList al=pageModel.getFeyeReuslt(PageNo,pageSizes,lybId);lyb lyb=null;for(int i=0;i<al.size();i++){lyb=(lyb)al.get(i);%><div class="lyneirong"><div class="lyneirong_left"><img src="images/100.jpg"/><span class="bb"><br/><%=lyb.getLyrName()%></span></div><div class="lyneirong_right"><div class="lyneirong_right_up">第<%=lyb.getId()%>楼<%=lyb.getLyDate()%>留言<span class="cc">回复</span></div><div class="lyneirong_right_nr"><%=lyb.getContent()%></div>说明完 -->下面是源码:<div class="fenge"><%!int TotalPages=30,PageNo=1;var page=”index.jsp?PageNo” %><a href="<%=page %>=<%=PageNo-1%>">上一页</a>if(PageNo<6&&allPages<6){for(int h=1;h<=allPages;h++){%><a href="<%=page %>=<%=h%>"><%out.print(h);%></a><%out.print(" ");}%><%//该部分是判断总页数是否小于6,如果总页数小于6,那么显示所有页码。
}else if(PageNo<6 && allPages>6){for(int h=1;h<6;h++){%><a href="<%=page %>=<%=h%>"><%out.print(h);%></a><%out.print(" ");}%><a href="#"><%out.print("...");%></a><a href="<%=page %>=<%=allPages-1%>"><%out.print(allPages-1);%></a><a href="<%=page %>=<%=allPages%>"><%out.print(allPages);%></a><%//如果当前页小于6,而且所有页码又大于6,那么就应该显示前五页,并且还要显示最后两页。
}else if(PageNo>5 && PageNo<=(allPages-5)){%><a href="<%=page %>=1"><%out.print("1");%></a><a href="<%=page %>=2"><%out.print("2");%></a><a href="index.jsp"><%out.print("...");%></a><a href="<%=page %>=<%=PageNo-1%>"><%out.print(PageNo-1);%></a><a href="<%=page %>=<%=PageNo%>"><%out.print(PageNo);%></a><a href="<%=page %>=<%=PageNo+1%>"><%out.print(PageNo+1);%></a><a href="index.jsp"><%out.print("...");%></a><a href="<%=page %>=<%=allPages-1%>"><%out.print(allPages-1);%></a><a href="<%=page %>=<%=allPages%>"><%out.print(allPages);%></a><%//如果当前页是大于5,并且又不是最后几页,那么就这样显示【上一页1 2 …21 22 23 …29 30下一页】}else if(PageNo>allPages-5){%><a href="<%=page %>=<%=1%>"><%out.print("1");%></a><a href="<%=page %>=<%=2%>"><%out.print("2");%></a><a href="index.jsp"><%out.print("...");%></a><%for(int h=5;h>=0;h--){%><ahref="<%=page %>=<%=allPages-h%>"><%out.print(allPages-h);%></a><%out.print(" ");}}//但当前页是最后五页时,那么应该这样显示。
【上一页1 2 …26 27 28 29 30下一页】%> <a href="<%=page %>=<%=PageNo+1%>">下一页</a>当前页:<%=PageNo%>/<%=allPages%></div><!--分页部分 END-->。