那位牛人做过 Struts+Hibernate 的分页,要有 1 2 3 4 5 6 像这样显示的,有好思路或者代码的贴出来参考下,或者直接发到我邮箱,不慎感激。[email protected]
解决方案 »
- 为什么同一台服务器上,log4j打印日志时显示的时间差了3分钟呢
- hibernate批量更新的问题,根据复选框选中要更新的行
- (急)Hibernate缓存问题,手动向mysql插入一条数据后,界面显示不出来
- 建立连接池后怎么用。
- jsp页面无法获取action传来的session
- excel文件读取并存入数据库问题
- 哪位英雄能明示在下框架(frame)的本质!在下感激不尽来生作牛做马景仰之情犹如滔滔江水!!
- 验证码问题session出问题了。。。。。。
- 如何控制图片显示的位置和大小?html电子教程上说得太简单了
- 请问在g.setColor(Color.white)里面可以自定义颜色吗?
- 关于 applet 的一个问题
- JSP页面开发有关翻页的一点疑问
package com.gdp2008_admin.util;/**
* 分页类
* @author 黄根发(chinahgf)
* 2007-05-08
*/import java.util.ArrayList;
import java.util.List;import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;public class Page {
private int pageSize; //一页显示的记录数
private int pageCount; //总页数
private boolean isLastPage; //是否是最后一页
private boolean hasNextPage; //是否有下一页
private boolean hasPreviousPage; //是否有上一页
private List showList; //待显示的数据集合
private int pageShowNumber; //待显示的页面
private static List resultList; //总记录
private int resultListCount; //总记录数量
/**
* 构造方法
*/
public Page(int pageSize){
this.pageSize=pageSize; //设置一页的记录数
showList=new ArrayList(); //初始
this.hasNextPage=true; //初始
this.hasPreviousPage=true; //初始
this.pageShowNumber=1;
}
/**
* 设置记录集
* @return void
*/
private void setResultList(List resultList){
if(resultList!=null){
this.resultList=resultList;
}
}
/**
* 设置总页数
* @return void
*/
private void setResultListCount(){
this.pageCount=this.resultList.size()/this.pageSize;
if(this.resultList.size()%this.pageSize!=0){
this.pageCount+=1;
}
}
/**
* 设置显示页面信息
* @return void
*/
private void setShowInfo(List resultList,String pageShow,HttpServletRequest request){
HttpSession session=request.getSession();
if(this.pageCount<=1){ //如果只有一页
this.hasNextPage=false;
this.hasPreviousPage=false;
}
if(pageShow==null||pageShow.equals("")){
this.pageShowNumber=1; //如果是第一次
if(session.getAttribute("page")!=null){
this.pageShowNumber=Integer.parseInt(session.getAttribute("page").toString());
}
this.hasPreviousPage=false;
}else{
this.pageShowNumber=Integer.parseInt(pageShow);
if(this.pageShowNumber<=1){ //如果为首页
this.pageShowNumber=1;
this.hasPreviousPage=false;
}else if(this.pageShowNumber>=this.pageCount){ //如果为尾页
this.pageShowNumber=this.pageCount;
this.hasNextPage=false;
}else{
this.hasNextPage=true;
this.hasPreviousPage=true;
}
}
session.setAttribute("page", this.pageShowNumber);
}
/**
* 设置要显示的记录集
* @return 要显示的记录集List
*/
private List getResultList(){
int pageFirst=pageShowNumber*pageSize-pageSize;
if(this.resultList.size()!=0){
for(int i=pageFirst;i<pageFirst+pageSize&&i<this.resultList.size();i++){
showList.add(this.resultList.get(i));
}
return showList;
}
return null;
}
/**
* 返回待显示的记录集
* @return 待显示的记录集List
*/
public List getPageList(List resultList,String pageShow,HttpServletRequest request){
this.setResultList(resultList);
this.setResultListCount();
this.setShowInfo(resultList,pageShow,request);
return this.getResultList();
}
/**
* 返回是否有下一页
* @return 是否有下一页boolean
*/
public boolean getHasNextPage(){
return this.hasNextPage;
}
/**
* 返回是否有上一页
* @return 是否有上一页boolean
*/
public boolean getHasPreviousPage(){
return this.hasPreviousPage;
}
/**
* 返回总页数
* @return 总页数int
*/
public int getPageCount(){
return this.pageCount;
}
/**
* 返回正显示的页面
* @return 正显示的页面int
*/
public int getPageShowNumber(){
return this.pageShowNumber;
}
/**
* 返回总记录数量
* @return 总记录数量int
*/
public int getResultListCount(){
return this.resultList.size();
}
}
package com.gdp2008_admin.util;
/**
* 自定义分页标签
* @author 黄根发(chinahgf)
* 2007-5-8
*/
import java.io.IOException;import javax.servlet.jsp.JspException;
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.tagext.TagSupport;public class PageTag extends TagSupport { Page page; //分页对象
String url; //显示路径
public void setObjPage(Page objPage){
this.page=objPage;
}
public void setUrl(String url){
this.url=url;
}
public int doAfterBody() throws JspException {
// TODO Auto-generated method stub
return super.doAfterBody();
} public int doEndTag() throws JspException {
// TODO Auto-generated method stub
return super.doEndTag();
} public int doStartTag() throws JspException {
JspWriter out=pageContext.getOut();
try {
out.print("<form method='POST' action='"+this.url+"' align='center'>");
out.print("记录总数:<font color='#FF0000'>"+page.getResultListCount()+"</font>   总页数:<font color='#FF0000'>"+page.getPageCount()+"</font>   ");
out.print("当前页数:<font color='#FF0000'>"+page.getPageShowNumber()+"</font>   ");
out.print("<a href='"+this.url+"?page=1'>【第一页】</a>   ");
if(page.getHasPreviousPage()){
out.print("<a href='"+this.url+"?page="+(page.getPageShowNumber()-1)+"'>【上一页】</a>   ");
}else{
out.print("【上一页】");
}
if(page.getHasNextPage()){
out.print("<a href='"+this.url+"?page="+(page.getPageShowNumber()+1)+"'>【下一页】</a>   ");
}else{
out.print("下一页");
}
out.print("<a href='"+this.url+"?page="+page.getPageCount()+"'>【末页】</a>   ");// out.print("转到第:<input type='text' name='page' size='8'> 页");
// out.print("<input type=submit value=GO name=cndok>");
out.print("</form>");
} catch (IOException e) {
e.printStackTrace();
}
return super.doStartTag();
}
}
testpage.tld<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE taglib
PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN"
"http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd">
<taglib>
<tlib-version>1.0</tlib-version>
<jsp-version>1.2</jsp-version>
<short-name>page</short-name>
<!--OutputTag--> <tag>
<name>page</name>
<tag-class>com.gdp2008_admin.util.PageTag</tag-class>
<body-content>jsp</body-content>
<attribute>
<name>objPage</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>url</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
</taglib>
<%@ taglib uri="/WEB-INF/testpage.tld" prefix="page"%>
<page:page objPage="<%=showPage%>" url="<%=basePath+request.getRequestURI()%>"></page:page>
http://download.csdn.net/source/883027