急急急!!!,本人正在作一个项目!JSP中,如何实现分页显示?请高手指教!

richie8398 2007-11-04 11:19:08
一下是页面中本人写的分页显示代码:
<%
//页面初始化,dipage为当前第几页,下面那个dipage作为参数
int dipage=1;
String pages=request.getParameter("dipage");
if(pages==null)
{
pages="1";
}
try{
dipage=Integer.parseInt(pages);
System.out.println("初始化dipage:"+dipage);
}catch(Exception e){
dipage=1;
}

%>
Vector vc=new Vector();//定义了一个Vector实例,用来存放查询出来的一条数据
DBCon db=new DBCon();//为数据库连接类,里面包含有查询的方法
int PageCount=4;//每页显示4条记录
int Count=0; //一共多少条记录
int Page=0; //总共多少页
String sqlFoot="select * from ThirdLevelTitle where SecondTitleId='"+titleid+"'"; //titleid为:前一个页面传过来的变量
vc=db.SelectAllTitle(sqlFoot); SelectAllTitle(String sql)方法为查询方法
Count=vc.size();
//得到总共多少页
if(Count%PageCount==0)
{
Page=Count/PageCount;
}
else
{
Page=Count/PageCount+1;
}
System.out.println(""+Page);

if((dipage-1)*PageCount==0)
{
vc.get(0);
}
else
{
vc.get((dipage-1)*PageCount);
}
//下面程序中的i有问题,可是本人不知道改如何改,请高手指教一下.
总是第一页能显示,转到下一页时,就只能显示一条
int i=(dipage-1)*PageCount;
while(i<Count)
{
//int num=i+1;如何让num跳出来
out.println("<tr align='center'><td>");
ThirdTitleBean ttbFoot=(ThirdTitleBean)vc.get(i);
String idFoot=ttbFoot.getId();
String titleFoot=ttbFoot.getTitleName();
out.println("<a target='_blank' href=3ji.jsp?id="+idFoot+">"+titleFoot+"</a>");
out.println("</td></tr>");
i++;
if(i>=PageCount)
{
break;
}
}
out.println("<tr><td>");
out.println("共"+Count+"条记录,共"+Page+"页,当前第"+dipage+"页,每页"+PageCount+"条记录");
if(i==1)//当前是首页
{;}
else
{
out.print("<a href=2ji.jsp?dipage=1>首页</a>,");
out.print("<a href=2ji.jsp?dipage="+(dipage-1)+">上一页</a>,");
}
if(i==Page)
{
;
}
else
{
System.out.println("dipage"+dipage+"");
out.print("<a href=2ji.jsp?dipage="+(dipage+1)+">下一页</a>,");
out.print("<a href=2ji.jsp?dipage="+Page+">末页</a>,");
}
out.print("</td></tr>");
%>



...全文
148 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
yanbilian 2007-11-06
  • 打赏
  • 举报
回复
我也给你一个我的分页类吧,具体使用你自己看看吧,一时半会我也不好说清楚,主要是传参数的问题。

public class Pager {
private int offset;

private int nextPageOffset;

private int previousPageOffset;

private int lastPageOffset;

private int size;

private int length;

private boolean hasPrevious;

private boolean hasNext;

private String description = null;

public Pager(int offset, int size, int length) {
this.offset = offset+1;
this.size = size;
this.length = length;
}

public int pageCount() {
int pagecount = 0;
if (size % length == 0) {
pagecount = size / length;
} else {
pagecount = size / length + 1;
}
if(pagecount==0)
{
pagecount=1;
}
return pagecount;
}

public int lastPageSize() {
int lastpagesize = 0;
if (size % length == 0) {
lastpagesize = length;
} else {
lastpagesize = size % length;
}
return lastpagesize;
}

public int lastPageOffset() {
return size - lastPageSize();
}

public int getOffset() {
return offset-1;
}

public void setOffset(int offset) {
this.offset = offset;
}

public int getSize() {
return size;
}

public void setSize(int size) {
this.size = size;
}

public int getLength() {
return length;
}

public void setLength(int length) {
this.length = length;
}

public boolean isHasNext() {
if ((offset + length-1) < size) {
hasNext = true;
} else {
hasNext = false;
}
return hasNext;
}

public void setHasNext(boolean hasNext) {
this.hasNext = hasNext;
}

public boolean isHasPrevious() {
if (offset > length) {
hasPrevious = true;
} else {
hasPrevious = false;
}
return hasPrevious;
}

public void setHasPrevious(boolean hasPrevious) {
this.hasPrevious = hasPrevious;
}

public int getNextPageOffset() {
if (isHasNext()) {
nextPageOffset = offset + length-1;
}
return nextPageOffset;
}

public void setNextPageOffset(int nextPageOffset) {
this.nextPageOffset = nextPageOffset;
}

public int getPreviousPageOffset() {
if (isHasPrevious()) {
previousPageOffset = offset - length-1;
}
return previousPageOffset;
}

public void setPreviousPageOffset(int previousPageOffset) {
this.previousPageOffset = previousPageOffset;
}

public String getDescription() {
int currentPage=0;
if(offset%length==0)
{
currentPage=offset/length;
}else{
currentPage=offset/length+1;
}
int pagenumber=pageCount();
description="第"+currentPage+"页 共"+pagenumber+" 页";
return description;
}

public void setDescription(String description) {
this.description = description;
}

public int getLastPageOffset() {
int temp=0;
temp=(pageCount()-1)*length;
lastPageOffset=temp;
return lastPageOffset;
}

public void setLastPageOffset(int lastPageOffset) {
this.lastPageOffset = lastPageOffset;
}
}


洪泉 2007-11-05
  • 打赏
  • 举报
回复
http://blog.csdn.net/alexwan
zhb_821012 2007-11-05
  • 打赏
  • 举报
回复
给你写个简单分页bean吧,传入一个总记录数就行了,结合分页sql比较简单方便

public class PageBean implements Serializable
{
private int currentPage;

private int totalItem;

private int everyPage;


//设置当前页
public void setCurrentPage(int currentPage)
{

int totalPage = this.getTotalPage();
if(currentPage <= 0)
{
this.currentPage = 1;

} else if(currentPage >= totalPage)
{
this.currentPage = totalPage ;
}
this.currentPage = currentPage;
}
//取得当前页
public int getCurrentPage()
{
if(totalItem <= 0)
{
return 1;
}
return this.currentPage;
}

//取得当前页码
public int getCurrentPageNum() {
if(totalItem <= 0) {
return 1;
}
return this.currentPage ;
}

public void setEveryPage(int everyPage)
{
this.everyPage = everyPage;
}

public int getEveryPage()
{
return this.everyPage;
}

public int getTotalPage()
{

if(totalItem % everyPage == 0) {
return totalItem / everyPage;
} else {
return totalItem / everyPage + 1;
}
}

public void setTotalItem(int totalItem) {
this.totalItem = totalItem;
}

public int getTotalItem() {
return this.totalItem;
}

public int getBeginPosition()
{

return((currentPage-1)*everyPage);



}

public int getEndPosition() {
return currentPage * everyPage ;
}

public boolean isFirstPage() {
return (currentPage <= 1);
}

public boolean isLastPage() {

int totalPage;
totalPage = getTotalPage();
if(currentPage >= totalPage) {
return true;
} else {
return false;
}
}

public boolean isEmptyItem() {
return (totalItem <= 0);
}
xiyuan1999 2007-11-05
  • 打赏
  • 举报
回复
写个分页的Bean吧
Makaveli 2007-11-05
  • 打赏
  • 举报
回复
mark 学习ing~
lioushuei 2007-11-05
  • 打赏
  • 举报
回复
给你看下我写的代码: 好处是抄过10页显示的是10-20页的 10页以前显示1-10
java action 代码:
int page = 1;// 当前页
// 判断当前页数
if (request.getParameter("page") != null && !request.getParameter("page").equals(""))
{
page = Integer.parseInt(request.getParameter("page"));
}

if (page % 10 == 0) {
request.setAttribute("pageArea", page);// 当前页范围最大数
} else {
request.setAttribute("pageArea", (page / 10 + 1) * 10);// 当前页范围最大数
}

int infoNum =list.size(); // 总记录数

if(pageMax!=0)
{
if (infoNum % pageMax == 0) {
request.setAttribute("pageNum", infoNum / pageMax);// 总页数
} else {
request.setAttribute("pageNum", infoNum / pageMax + 1);// 总页数
}
}

jsp 代码
<td valign="bottom" align="center" width="70">
<c:if test="${page==1}">
<img src="images/conch/xwzx_button_11.gif" width="60"
height="15" alt="">
</c:if>
<c:if test="${page!=1}">
<a href="informManage.do?method=bushi&mid=${mid}&page=${page-1}"> <img
src="images/conch/xwzx_button_11.gif" width="60"
style="border-style: none;" height="15" alt="">
</a>
</c:if>
</td>
<td valign="middle" align="left">
<%
int pageArea = (Integer) request.getAttribute("pageArea"); //显示1-10||10--20
int pageRec = (Integer) request.getAttribute("page"); //当前
int pageNum = (Integer) request.getAttribute("pageNum"); //总也数
for (int i = pageArea - 9; i <= pageArea && i <= pageNum; i++) {
if (pageRec == i) {
out.write("<font color=\"0e58b1\">" + i + "</font> ");
} else {
%>
<a href="informManage.do?method=bushi&mid=${mid}&page=<%=i%>">
<font color="656565"><%=i%></font></a>
<%}
}
%>
</td>
<td valign="bottom" align="left">
<c:if test="${pageMax==1 or page==pageNum}">
<img src="images/conch/xwzx_button_13.gif" width="59"
height="15" alt="">
</c:if>
<c:if test="${pageMax!=1 and page!=pageNum}">
<a href="informManage.do?method=bushi&mid=${mid}&page=${page+1}">
<img src="images/conch/xwzx_button_13.gif" width="59"
style="border-style: none;" height="15" alt="">
</a>
</c:if>
</td>
<td valign="middle" align="left">
<font color="4bb3da">跳转到第</font>
<input name="page" type="text" size="5">
<font color="4bb3da">页</font>
<input type="button" value="GO"
onclick="checkMax(${pageNum});">
</td>
<td valign="middle" align="left">
<font color="#666666">每页${pageMax}条 共${infoNum}条信息
 分${pageNum}页 当前第${page}页</font>
</td>


dyw31415926 2007-11-05
  • 打赏
  • 举报
回复
mark

81,091

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧