分页
bean
(
PageBean.java
):
package com.shop.bean;
public class PageBean {
private int count = 0; // 记录总数
private int pageSize = 10; // 每页显示记录数
private int pageCount = 0; // 总页数
private int page = 1; // 当前页数
private int begin = 0;// 从第几条记录开始
public int getBegin() {
return begin;
}
public void setBegin(int begin) {
this.begin = begin;
}
public int getCount() {
return count;
}
public void setCount(int count) {
if (pageSize != 0) { // 如果每页显示记录不为 0
pageCount = count / pageSize; // 总页数等于总记录数除以每页记录数
if (count % pageSize != 0) { // 只要总记录数磨每页显示记录数不为 0
pageCount++; // 总页数就 +1
}
begin = (page-1)*pageSize;
}
this.count = count;
}
public int getPageSize() {
return pageSize;
}
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
public int getPageCount() {
return pageCount;
}
public void setPageCount(int pageCount) {
this.pageCount = pageCount;
}
public int getPage() {
return page;
}
public void setPage(int page) {
this.page = page;
}
private int count = 0; // 记录总数
private int pageSize = 10; // 每页显示记录数
private int pageCount = 0; // 总页数
private int page = 1; // 当前页数
private int begin = 0;// 从第几条记录开始
public int getBegin() {
return begin;
}
public void setBegin(int begin) {
this.begin = begin;
}
public int getCount() {
return count;
}
public void setCount(int count) {
if (pageSize != 0) { // 如果每页显示记录不为 0
pageCount = count / pageSize; // 总页数等于总记录数除以每页记录数
if (count % pageSize != 0) { // 只要总记录数磨每页显示记录数不为 0
pageCount++; // 总页数就 +1
}
begin = (page-1)*pageSize;
}
this.count = count;
}
public int getPageSize() {
return pageSize;
}
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
public int getPageCount() {
return pageCount;
}
public void setPageCount(int pageCount) {
this.pageCount = pageCount;
}
public int getPage() {
return page;
}
public void setPage(int page) {
this.page = page;
}
}
--------------------------------------------------------------------------------------------------------------------------
核心分页类( Count.java ):
核心分页类( Count.java ):
package com.shop.count;
import java.util.List;
import com.shop.bean.PageBean;
public class Count implements PaginateInterface {
// 显示用的分页信息
public String getToolsMenu(PageBean p) {
StringBuffer str = new StringBuffer("");
int next, prev;
prev = p.getPage() - 1;
next = p.getPage() + 1;
str.append("<INPUT type=hidden id=/"jumpPage/" name=/"jumpPage/" > ");
str.append("<INPUT type=hidden id=/"jumpSize/" name=/"jumpSize/"> ");
if (p.getPage() > 1) {
str
.append("<a href=/"#/" οnclick='document.getElementById(/"jumpPage/").value=1;document.forms(0).submit();'> 首页 </a> ");
} else {
//str.append("<a href=/"#/"> 首页 </a> ");
str.append(" 首页 ");
}
if (p.getPage() > 1) {
str.append("<a href=/"#/" οnclick='document.getElementById(/"jumpPage/").value="
+ prev + ";document.forms(0).submit();'> 上页 </a> ");
} else {
//str.append("<a href=/"#/"> 上页 </a> ");
str.append(" 上页 ");
}
if (p.getPage() < p.getPageCount()) {
str.append("<a href=/"#/" οnclick='document.getElementById(/"jumpPage/").value="
+ next + ";document.forms(0).submit();'> 下页 </a> ");
} else {
//str.append("<a href=/"#/" > 下页 </a> ");
str.append(" 下页 ");
}
if (p.getPageCount() > 1 && p.getPage() != p.getPageCount()) {
str.append("<a href=/"#/" οnclick='document.getElementById(/"jumpPage/").value="
+ p.getPageCount()
+ ";document.forms(0).submit();'> 末页 </a> ");
} else {
//str.append("<a href=/"#/" > 末页 </a> ");
str.append(" 末页 ");
}
str.append(" 共 " + p.getCount() + " 条记录 ");
str
.append(" 每页 <SELECT size=1 name=pagesize οnchange='document.getElementById(/"jumpPage/").value=1;document.getElementById(/"jumpSize/").value=this.value;this.form.submit();'>");
if (p.getPageSize() == 3) {
str.append("<OPTION value=3 selected>3</OPTION>");
} else {
str.append("<OPTION value=3>3</OPTION>");
}
if (p.getPageSize() == 10) {
str.append("<OPTION value=10 selected>10</OPTION>");
} else {
str.append("<OPTION value=10>10</OPTION>");
}
if (p.getPageSize() == 20) {
str.append("<OPTION value=20 selected>20</OPTION>");
} else {
str.append("<OPTION value=20>20</OPTION>");
}
if (p.getPageSize() == 50) {
str.append("<OPTION value=50 selected>50</OPTION>");
} else {
str.append("<OPTION value=50>50</OPTION>");
}
if (p.getPageSize() == 100) {
str.append("<OPTION value=100 selected>100</OPTION>");
} else {
str.append("<OPTION value=100>100</OPTION>");
}
str.append("</SELECT>");
str.append(" 条 分 " + p.getPageCount() + " 页显示 转到 ");
str
.append("<SELECT size=1 name=Pagelist οnchange='document.getElementById(/"jumpPage/").value=this.value;this.form.submit();'>");
for (int i = 1; i < p.getPageCount() + 1; i++) {
if (i == p.getPage()) {
str.append("<OPTION value=" + i + " selected>" + i
+ "</OPTION>");
} else {
str.append("<OPTION value=" + i + ">" + i + "</OPTION>");
}
}
str.append("</SELECT> 页 ");
return str.toString();
}
// 显示用的分页信息
public String getToolsMenu(PageBean p) {
StringBuffer str = new StringBuffer("");
int next, prev;
prev = p.getPage() - 1;
next = p.getPage() + 1;
str.append("<INPUT type=hidden id=/"jumpPage/" name=/"jumpPage/" > ");
str.append("<INPUT type=hidden id=/"jumpSize/" name=/"jumpSize/"> ");
if (p.getPage() > 1) {
str
.append("<a href=/"#/" οnclick='document.getElementById(/"jumpPage/").value=1;document.forms(0).submit();'> 首页 </a> ");
} else {
//str.append("<a href=/"#/"> 首页 </a> ");
str.append(" 首页 ");
}
if (p.getPage() > 1) {
str.append("<a href=/"#/" οnclick='document.getElementById(/"jumpPage/").value="
+ prev + ";document.forms(0).submit();'> 上页 </a> ");
} else {
//str.append("<a href=/"#/"> 上页 </a> ");
str.append(" 上页 ");
}
if (p.getPage() < p.getPageCount()) {
str.append("<a href=/"#/" οnclick='document.getElementById(/"jumpPage/").value="
+ next + ";document.forms(0).submit();'> 下页 </a> ");
} else {
//str.append("<a href=/"#/" > 下页 </a> ");
str.append(" 下页 ");
}
if (p.getPageCount() > 1 && p.getPage() != p.getPageCount()) {
str.append("<a href=/"#/" οnclick='document.getElementById(/"jumpPage/").value="
+ p.getPageCount()
+ ";document.forms(0).submit();'> 末页 </a> ");
} else {
//str.append("<a href=/"#/" > 末页 </a> ");
str.append(" 末页 ");
}
str.append(" 共 " + p.getCount() + " 条记录 ");
str
.append(" 每页 <SELECT size=1 name=pagesize οnchange='document.getElementById(/"jumpPage/").value=1;document.getElementById(/"jumpSize/").value=this.value;this.form.submit();'>");
if (p.getPageSize() == 3) {
str.append("<OPTION value=3 selected>3</OPTION>");
} else {
str.append("<OPTION value=3>3</OPTION>");
}
if (p.getPageSize() == 10) {
str.append("<OPTION value=10 selected>10</OPTION>");
} else {
str.append("<OPTION value=10>10</OPTION>");
}
if (p.getPageSize() == 20) {
str.append("<OPTION value=20 selected>20</OPTION>");
} else {
str.append("<OPTION value=20>20</OPTION>");
}
if (p.getPageSize() == 50) {
str.append("<OPTION value=50 selected>50</OPTION>");
} else {
str.append("<OPTION value=50>50</OPTION>");
}
if (p.getPageSize() == 100) {
str.append("<OPTION value=100 selected>100</OPTION>");
} else {
str.append("<OPTION value=100>100</OPTION>");
}
str.append("</SELECT>");
str.append(" 条 分 " + p.getPageCount() + " 页显示 转到 ");
str
.append("<SELECT size=1 name=Pagelist οnchange='document.getElementById(/"jumpPage/").value=this.value;this.form.submit();'>");
for (int i = 1; i < p.getPageCount() + 1; i++) {
if (i == p.getPage()) {
str.append("<OPTION value=" + i + " selected>" + i
+ "</OPTION>");
} else {
str.append("<OPTION value=" + i + ">" + i + "</OPTION>");
}
}
str.append("</SELECT> 页 ");
return str.toString();
}
}
数据库分页:
public List isSelectAllProduct(PageBean pb) {
String hql = "from Product order by productID desc";
Query q = session.createQuery(hql);
q.setFirstResult(pb.getBegin()); // 从第几条数据开始
q.setMaxResults(pb.getPageSize());// 每页显示数量
List all = q.list();
session.beginTransaction().commit();
session.close();
return all;
}
String hql = "from Product order by productID desc";
Query q = session.createQuery(hql);
q.setFirstResult(pb.getBegin()); // 从第几条数据开始
q.setMaxResults(pb.getPageSize());// 每页显示数量
List all = q.list();
session.beginTransaction().commit();
session.close();
return all;
}
--------------------------------------------------------------------------------------------------------------------------
Servlet :
Servlet :
Count c = new Count(); //
条用分页核心类
PageBean pb = new PageBean();// 引入分页 bean
PageBean pb = new PageBean();// 引入分页 bean
if(request.getParameter("pagesize")!=null&&!"".equals(request.getParameter("pagesize"))){
pb.setPageSize(Integer.parseInt(request.getParameter("pagesize")));// 每页显示多少条数据
}
if(request.getParameter("jumpPage")!=null){
pb.setPage(Integer.parseInt(request.getParameter("jumpPage")));// 当前显示第几页
}
pb.setCount(ShoppingFactory.getProductDAOInstanceFactory().isSelectCountProduct());// 查询数据总数
pb.setPageSize(Integer.parseInt(request.getParameter("pagesize")));// 每页显示多少条数据
}
if(request.getParameter("jumpPage")!=null){
pb.setPage(Integer.parseInt(request.getParameter("jumpPage")));// 当前显示第几页
}
pb.setCount(ShoppingFactory.getProductDAOInstanceFactory().isSelectCountProduct());// 查询数据总数
String str = c.getToolsMenu(pb); //
获得分页导航栏
List all = ShoppingFactory.getProductDAOInstanceFactory().isSelectAllProduct(pb);// 根据 bean 的数据查询数据
List all = ShoppingFactory.getProductDAOInstanceFactory().isSelectAllProduct(pb);// 根据 bean 的数据查询数据
request.getSession().setAttribute("all", all);//
传递查询结果
request.getSession().setAttribute("menu", str);// 传递分页导航
request.getSession().setAttribute("menu", str);// 传递分页导航
--------------------------------------------------------------------------------------------------------------------------
页面调用导航:
${menu }
注:页面调用导航后,必须用
<form></form>
提交到
servlet
中导航才能生效!例如:
<form name="form1" method="post" action="/shoppingonline/admincountproductservlet?state=selectproduct">