题目有点儿绕..不过这代码会常常用到.网上看别人写得都有些太繁琐了,不是很喜欢,所以就自己写了一个.
1: /**
2: * 产生页码的HTML代码
3: * @author ijse
4: *
5: * @param curPage
6: * int类型,当前页码
7: * @param pageSize
8: * int类型,一页中显示的条目数
9: * @param totalRecords
10: * int类型,总条目
11: * @param pageMax
12: * int类型,最多显示多少个页码
13: * @param Url
14: * String类型,跳转的URL地址,例如: "/artical.jsp?page="
15: * @return String类型,返回最终的HTML代码
16: */
17: public String makePages(int curPage, int pageSize, int totalRecords,
18: int pageMax, String Url) {
19: String rslt = "";
20: int pageTotal = (totalRecords % pageSize == 0) ? (totalRecords / pageSize)
21: : (totalRecords / pageSize + 1);
22:
23: if (pageTotal == 1 || curPage > pageTotal) {
24: rslt = "";
25: } else {
26: // 首页
27: if (curPage > 1) {
28: rslt += " + Url + "1/">首页/n";
29: rslt += " + Url + (curPage - 1) + "/">上一页/n";
30: }
31: // 跳转页
32: int i = 1;
33: int t = pageTotal;
34:
35: i = curPage - (pageMax / 2);
36: i = (i < 1) ? 1 : i;
37: t = i + pageMax - 1;
38: if (t > pageTotal) {
39: t = pageTotal;
40: i = pageTotal - pageMax + 1;
41: }
42:
43: for (; i <= t; i++) {
44: if (curPage != i) {
45: rslt += " + Url + String.valueOf(i) + "/">["
46: + String.valueOf(i) + "]/n";
47: } else {
48: rslt += "
[" + String.valueOf(i) + "]
/n";
49: }
50: }
51: // 尾页
52: if (curPage < pageTotal) {
53: rslt += " + Url + (curPage + 1) + "/">下一页/n";
54: rslt += " + Url + pageTotal + "/">尾页/n";
55: }
56: }
57: return rslt;
58: }