jsp数据显示分页
从数据库获得数据就不写了,直接写如何进行分页,为了方便,把方法和实体类都写到一个java文件里面了
这只是一种简单的分页方法,肯能会有比较多的bug
这是java里的构造实体类和方法,
public class PageUtilServices {
private int pageSize;//每页显示的条数
private int recordCount;//总共的条数
private int currentPage;//当前页面
//构造方法
public PageUtilServices(int pageSize, int recordCount, int currentPage) {
super();
this.pageSize = pageSize;
this.recordCount = recordCount;
this.currentPage = currentPage;
}
public PageUtilServices() {
super();
}
//总页数
public int getPageCount() {
int size = recordCount/pageSize;//总条数/每页显示的条数=总页数
int mod = recordCount % pageSize;//最后一页的条数
if(mod != 0)
size++;
return recordCount == 0 ? 1 : size;
}
//当前页的起始索引为0
public int getFromIndex() {
return (currentPage-1) * pageSize;
}
//当前页应展示的最后索引
public int getToIndex() {
return Math.min(recordCount, currentPage * pageSize);
}
public int getCurrentPage() {
return currentPage;
}
public void setCurrentPage(int currentPage) {
this.currentPage = currentPage;
}
public int getPageSize() {
return pageSize;
}
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
public int getRecordCount() {
return recordCount;
}
public void setRecordCount(int recordCount) {
this.recordCount = recordCount;
}
}
这是jsp界面
<style type="text/css">
table{
margin: 0 auto;
border-collapse:collapse;
border-color: #666;
}
.lowstore{
color:red;
}
td{
text-align: center;
}
</style>
</head> <body>
<table border="1px">
<% BookInfoDao dao = new BookInfoDao();
List<Books> bookList = dao.showBooks();
String pageStr = request.getParameter("page");
int currentPage = 1;
if (pageStr==null){
currentPage = 1;
}else if(Integer.parseInt(pageStr)<=0){
currentPage = 1;
}else if(Integer.parseInt(pageStr)>bookList.size()/3){
currentPage =bookList.size()/3+1;
}else{
currentPage=Integer.parseInt(pageStr);
}
PageUtilServices pUtil = new PageUtilServices(3, bookList.size(), currentPage);
currentPage = pUtil.getCurrentPage(); BookInfoDao bd=new BookInfoDao();
//ArrayList<Books> books=bd.showBooks(); if(bookList.isEmpty()==false){ %> <tr bgcolor="#eeeeee" colspan=13 align="center" >
<td>编号</td>
<td>名称</td>
<td>作者</td>
<td>价格</td>
<td>发布日期</td>
<td>库存</td>
<td>操作</td>
<td>修改</td>
<td>入库</td>
<td>出库</td>
<td>评论</td>
<td>查看评论</td>
<td>购买图书</td>
</tr>
<% SimpleDateFormat sf=new SimpleDateFormat("yyyy-MM-dd");
//ArrayList<Books> bookList=bd.showBooks();
%>
<a href="addbooks.jsp">添加图书</a><br/>
<a href="searchbook.jsp">查找图书</a><br/>
<a href="userlist.jsp?id=3">查看用户</a><br/>
<a href="login.jsp">返回登录</a> <%
for (int i = pUtil.getFromIndex(); i < pUtil.getToIndex(); i++) {
Books book = bookList.get(i); %>
<tr class=<%=bookList.get(i).getReserve()<10?"lowstore":""%>>
<td><%=bookList.get(i).getBookId() %></td>
<td><%=bookList.get(i).getBookName() %></td>
<td><%=bookList.get(i).getAuther() %></td>
<td><%=bookList.get(i).getPrice() %></td>
<td><%=sf.format(bookList.get(i).getBookTime()) %></td>
<td><%=bookList.get(i).getReserve() %></td>
<td><a href="servlet/do_bookdelServlet?id=<%=bookList.get(i).getBookId() %>">删除</a></td>
<td><a href="servlet/do_updatebookServlet?id=<%=bookList.get(i).getBookId() %>">修改</a></td>
<td><a href="servlet/do_inbooksServlet?id=<%=bookList.get(i).getBookId() %>">入库</a></td>
<td><a href="servlet/do_outbooksServlet?id=<%=bookList.get(i).getBookId() %>">出库</a></td>
<td><a href="addcomment.jsp?id=<%=bookList.get(i).getBookId() %>">评论</a></td>
<td><a href="servlet/do_showcomServlet?id=<%=bookList.get(i).getBookId() %>">查看评论</a></td>
<td><a href="servlet/do_sellbookServlet?id=<%=bookList.get(i).getBookId() %>">购买</a></td>
</tr>
<% }
}else{
%>
<tr>
<td>对不起,没有图书收录,请添加!</td>
</tr>
<a href="addbooks.jsp">添加</a><br/>
<a href="login.jsp">返回登录</a>
<% }
%>
<tr><td bgcolor="#eeeeee" colspan=13 align="center">
记录总数<%=pUtil.getRecordCount()%>条 当前页/总页数<%=currentPage%>
/<%=pUtil.getPageCount()%> 每页显示<%=pUtil.getPageSize()%>条
<a href="booklist.jsp?page=1">首页</a>
<a href="booklist.jsp?page=<%=(currentPage - 1)%>">上页</a>
<a href="booklist.jsp?page=<%=(currentPage + 1)%>">下页</a>
<a href="booklist.jsp?page=<%=pUtil.getPageCount()%>">末页</a>
</td></tr> </table> </body>
jsp数据显示分页的更多相关文章
- jsp+servlet分页查询
分页查询 减少服务器内存开销 提高用户体验 效果图 思绪图 分页显示Bean文件代码 package cn.ytmj.findlist.domain; import java.util.List; / ...
- 用Hibernate和Struts2+jsp实现分页查询、修改删除
1.首先用get的方法传递一个页数过去 2.通过Struts2跳转到Action 3.通过request接受主页面index传过的页数,此时页数是1, 然后调用service层的方法获取DAO层分页查 ...
- JSP实现分页功能
分页须知知识点: (1)JDBC2.0的可滚动结果集. (2)HTTP GET请求. 一.可滚动结果集 Connection con = DriverManager.getConnection( ...
- javabean+servlet+jsp实现分页
前端实现用ligerUI实现分页,感觉用框架确实简单,闲着无聊,模拟着liger的分页界面实现了一遍(只要是功能,样式什么无视) 这里用基础的三层架构+servlet+jsp实现,思路很简单,把所有分 ...
- Servlet+jsp的分页案例
查询的分页,在web中经常用到.一般,分页要维护的信息很多,我们把这些相关的信息,分装到一个类中,PageBean.具体如下: package cn.itcast.utils; import java ...
- JSP入门 分页
<div> <% Integer pageNo = (Integer) request.getAttribute("pageNo"); ...
- jsp假分页
假分页:从数据库中取出所有的数据,然后分页在界面上显示.访问一次数据库,但由于选择的数据量比较大,所以第一次花费时间比较长,但之后每一页的显示都是直接.快速的,避免对数据库的多次访问. 真分页:确定要 ...
- JSP页面分页显示数据
效果如上图所示!最多显示10条:完整jsp和后台代码如下: <%@ page contentType="text/html;charset=UTF-8" %> < ...
- JSP的分页技术
在实际应用中,如果从数据库中查询的记录特别的多,甚至超过了显示屏的显示范围,这个时候可将结果进行分页显示. 假设总记录数为intRowCount,每页显示的数量为inPageSize,总页数为intP ...
随机推荐
- Robot Framework(一)
一. 定义 Robot Framework是一款python编写的功能自动化测试框架,具有良好的可扩展性,支持关键字驱动,可以同时测试多种类型的客户端或者接口,可以进行分布式测试执行 二. Robot ...
- 获得Ztree选择的节点
$('#save').click(function(){ if($("#roleForm").form("validate")){ var treeObj = ...
- 51nod-1385-贪心-构造
http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1385 基准时间限制:1 秒 空间限制:131072 KB 分值: 80 ...
- hive 权限:Authorization failed:No privilege 'Create' found for outputs .
创建表报错: create table test ( name string ); Authorization failed:No privilege 'Create' found for outpu ...
- http Code含义
5xx - 服务器错误 服务器由于遇到错误而不能完成该请求.
- 析构函数和Dispose方法的区别
1. 析构函数(Finalize)只能释放非托管资源, 它是由GC调用. 2. Dispose方法可以释放托管资源和非托管资源,它是由用户手动调用的. 在Dispose()中调用 GC.Suppres ...
- PostgreSQL java读取bytes字段
写入bytea: File img = new File("/tmp/eclipse.png"); fin = new FileInputStream(img); con = Dr ...
- get running task , process and service
public class MyActivityManager extends ExpandableListActivity { private static final String NAME = & ...
- javascript 继承的两种方式
js中继承可以分为两种:对象冒充和原型链方式 一.对象冒充包括三种:临时属性方式.call()及apply()方式1.临时属性方式 代码如下: function Person(name){ t ...
- 使用sqlmap执行SQL注入攻击
sqlmap是开源的SQL注入自动攻击工具,它可以自动的探测SQL注入点并且进一步控制网站的数据库. Kali Linux默认安装了这个工具. 找到潜在的攻击目标 第一步是找到有SQL注入漏洞的网站. ...