如何实现超过10页以后,其中一页显示不会全部页显示,而是显示当前页的前5页和后5页呢?我的分页代码如下:...
<%
int i;
int ipage=10;
int allpage;
int pages;
int cpage=1;
int spage; java.lang.String sql,pagesql;
java.sql.ResultSet rs,pagers; pagesql = "select count(a_id) as A from article";
pagers = sqlconn.executeQuery(pagesql);
int allCol = pagers.getInt("A"); allpage = (int)Math.ceil((allCol + ipage-1) / ipage); if (request.getParameter("pages")==null) {
pages=1;
} else {
pages = new Integer(request.getParameter("pages")).intValue();
} if(pages > allpage // pages == 0){
cpage = 1;
} else {
cpage = pages;
} spage=(cpage-1)*ipage; sql = "select a_id,a_title,a_author,aID,a_time,a_readtime,sID from article order by a_id desc limit "+ spage +","+ ipage;
rs = sqlconn.executeQuery(sql);
int cu=1; while (rs.next()) {
int aID = rs.getInt("a_id");
aTitle = rs.getString("a_title");
aAuthor = rs.getString("a_author");
int ArticleTypeID = rs.getInt("aID");
int ReadTime = rs.getInt("a_readtime");
InsertTime = rs.getString("a_time");
if (cu % 2 == 0) { Color="#DBECFD"; }
else { Color="#C6E1FD"; }
switch (ArticleTypeID) {
case(1):
ArticleType="小说";
break;
case(2):
ArticleType="散文";
break;
case(3):
ArticleType="诗歌";
break;
case(4):
ArticleType="随笔";
break;
}
%>
<tr bgcolor="<%= Color %>">
<td width="300"><a href="viewarticle.jsp?aID=<%= aID %>"><%= aTitle %></a></td>
<td align="center" width="100"><%= aAuthor %></td>
<td align="center" width="50"><%= ArticleType %></td>
<td align="center" width="50"><%= ReadTime %></td>
<td align="center" width="240"><%= InsertTime %></td>
</tr>
<%
cu++;
}
%>
<tr bgcolor="#CCCCCC">
<td colspan="5" align="right" valign="middle">共 <%= allCol %>条记录 共 <%= allpage %>页 <% if (cpage>1) { %><a href="article.jsp?pages=<%= cpage-1 %>">上一页</a><% } if (cpage<allpage) { %><a href="article.jsp?pages=<%= cpage+1 %>">下一页</a><% } %> / <% for (i=1;i<=allpage;i++) { if (i != pages) {%><a href="article.jsp?pages=<%= i %>"><%= i %></a> <% } }%></td>
...现在它的功能基本实现,不过就是差了我现在想问得。还想请教一下就是我看到过3种JSP分页技术,这种算是最差的,如果有更好的希望有高手提供。
<%
int i;
int ipage=10;
int allpage;
int pages;
int cpage=1;
int spage; java.lang.String sql,pagesql;
java.sql.ResultSet rs,pagers; pagesql = "select count(a_id) as A from article";
pagers = sqlconn.executeQuery(pagesql);
int allCol = pagers.getInt("A"); allpage = (int)Math.ceil((allCol + ipage-1) / ipage); if (request.getParameter("pages")==null) {
pages=1;
} else {
pages = new Integer(request.getParameter("pages")).intValue();
} if(pages > allpage // pages == 0){
cpage = 1;
} else {
cpage = pages;
} spage=(cpage-1)*ipage; sql = "select a_id,a_title,a_author,aID,a_time,a_readtime,sID from article order by a_id desc limit "+ spage +","+ ipage;
rs = sqlconn.executeQuery(sql);
int cu=1; while (rs.next()) {
int aID = rs.getInt("a_id");
aTitle = rs.getString("a_title");
aAuthor = rs.getString("a_author");
int ArticleTypeID = rs.getInt("aID");
int ReadTime = rs.getInt("a_readtime");
InsertTime = rs.getString("a_time");
if (cu % 2 == 0) { Color="#DBECFD"; }
else { Color="#C6E1FD"; }
switch (ArticleTypeID) {
case(1):
ArticleType="小说";
break;
case(2):
ArticleType="散文";
break;
case(3):
ArticleType="诗歌";
break;
case(4):
ArticleType="随笔";
break;
}
%>
<tr bgcolor="<%= Color %>">
<td width="300"><a href="viewarticle.jsp?aID=<%= aID %>"><%= aTitle %></a></td>
<td align="center" width="100"><%= aAuthor %></td>
<td align="center" width="50"><%= ArticleType %></td>
<td align="center" width="50"><%= ReadTime %></td>
<td align="center" width="240"><%= InsertTime %></td>
</tr>
<%
cu++;
}
%>
<tr bgcolor="#CCCCCC">
<td colspan="5" align="right" valign="middle">共 <%= allCol %>条记录 共 <%= allpage %>页 <% if (cpage>1) { %><a href="article.jsp?pages=<%= cpage-1 %>">上一页</a><% } if (cpage<allpage) { %><a href="article.jsp?pages=<%= cpage+1 %>">下一页</a><% } %> / <% for (i=1;i<=allpage;i++) { if (i != pages) {%><a href="article.jsp?pages=<%= i %>"><%= i %></a> <% } }%></td>
...现在它的功能基本实现,不过就是差了我现在想问得。还想请教一下就是我看到过3种JSP分页技术,这种算是最差的,如果有更好的希望有高手提供。
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货