- 浏览: 26437 次
- 性别:
- 来自: 湖南
最新评论
-
gundumw100:
不值得推荐!!!
show下我的分页类 -
wh8766:
楼主整理幸苦了~
SSH整合思路 -
kaki:
感谢楼主和大家分享,我还不如你。
show下我的分页类 -
cissco:
现在都转行搞Linux下的C/C++开发了,呵~
show下我的分页类 -
our651:
我觉得分页也应该与MVC、分层的思想一致,同时做到好的封装
代 ...
show下我的分页类
package com.xm.utils; import java.util.Enumeration; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.kangsheng.cus.common.dbconn.DaoFactory; // Referenced classes of package com.sihitech.tools: // DaoFactory public class PageRoll { private String currentUrl; // private PageContext page; private DaoFactory pv; private HttpServletRequest request; private HttpServletResponse response; private String strParams; private String strlink; public PageRoll(HttpServletRequest request, HttpServletResponse response, DaoFactory pv) { currentUrl = ""; strParams = ""; this.request = request; this.response = response; this.pv = pv; currentUrl = request.getRequestURL().toString(); strParams = GetParamsFromCurrentUrl(); } private String GetParamsFromCurrentUrl() { String str1 = ""; String paraValue = ""; for (Enumeration enu = request.getParameterNames(); enu .hasMoreElements();) { String paraName = (String) enu.nextElement(); paraValue = request.getParameter(paraName); if (!paraName.equals("page")) str1 = str1 + "&" + paraName + "=" + paraValue; } return str1; } public void Show(boolean allRecord, boolean pageInfo, boolean pageNav, boolean jumpPage) { // PrintWriter out = response.getWriter(); // out.print("<table border=0> <tr><td>"); String link = ""; if (allRecord) link = link + ShowTotalRecord(); if (pageInfo) link = link + ShowPageInfo(); if (pageNav) link = link + ShowPageNav(); if (jumpPage) link = link + ShowJumpPage(); this.strlink = link; // out.print("</td></tr></table>"); } private String ShowJumpPage() { // PrintWriter out = response.getWriter(); String link = ""; link = link + "转到第<input type='text' name='page' size='1'><span>页</span><input type=button value='GO' onclick='goToPage()'>"; link = link + "<script language='javascript'>"; link = link + "function goToPage(){"; link = link + "value=document.all.page.value;"; link = link + "if(value.indexOf(\".\")==-1 && value.indexOf(\"-\")==-1 && value!==\"\" && !isNaN(value) && value>0 && value<" + (pv.GetTotalPage() + 1) + "){"; link = link + "location.assign('" + currentUrl + "?page='+value+'" + strParams + "')"; link = link + "}"; link = link + "}"; link = link + "</script>"; return link; } private String ShowPageInfo() { // PrintWriter out = response.getWriter(); String link = "第" + pv.GetCurrentPage() + "/" + pv.GetTotalPage() + "页 "; return link; } private String ShowPageNav() { // PrintWriter out = response.getWriter(); String link = ""; if (pv.GetTotalPage() > 1) link = "<a href='" + currentUrl + "?page=1" + strParams + "'><span>首页</span></a> "; else link = "<span>首页 </span>"; // if (pv.GetHasPrev()) link = link + "<a href='" + currentUrl + "?page=" + pv.GetPrevPageNumber() + strParams + "'><span>上页</span></a> "; else link = link + "<span>上页 </span>"; // if (pv.GetHasNext()) link = link + "<a href='" + currentUrl + "?page=" + pv.GetNextPageNumber() + strParams + "'><span>下页</span></a> "; else link = link + "<span>下页 </span>"; // if (pv.GetTotalPage() > 1) { link = link + "<a href='" + currentUrl + "?page=" + pv.GetTotalPage() + strParams + "'><span>尾页</span></a> "; return link; } else { link = link + "<span>尾页 </span>"; return link; } } private String ShowTotalRecord() { // PrintWriter out = response.getWriter(); String link = "<span>共" + pv.GetTotalRecord() + "条记录 </span>"; return link; } public String getStrlink() { return strlink; } public void setStrlink(String strlink) { this.strlink = strlink; } }
使用时,在action中建立该类的对象pr,并执行public void Show(boolean allRecord, boolean pageInfo, boolean pageNav,boolean jumpPage),将该对象放入ModelAndView,在页面使用${pr.strlink }就可以实现分页,如图
本人从事JAVA才1年,希望达到抛砖引玉的效果,大家把自己的工具拿出来show show,共同研究下,学习下
也建议版主弄一个工具包专题
评论
48 楼
weirihai
2008-11-19
呵呵
有时候不要直接说别人写的差啊!!
你可以指出别人的不足啊
把你好的贴出来啊!!
别人贴出来也是希望你指点的啊!!!
有时候不要直接说别人写的差啊!!
你可以指出别人的不足啊
把你好的贴出来啊!!
别人贴出来也是希望你指点的啊!!!
47 楼
xuming9
2008-11-19
感谢楼上提出的意见,争取下次show段让你们满意的代码
46 楼
Clayz
2008-11-18
赞扬lz的勇气和精神,但不得不说的是,这段代码真的让人看不下去...
45 楼
frogfool
2008-11-18
my js component screenshot
44 楼
frogfool
2008-11-18
@xuming9
1 赞赏搂主晒代码的勇气!
2 分页类应该只是分页参数类,尽量做到简单,不应该耦合HttpServletRequest/HttpServletResponse/DaoFactory
@qianlei007
建议分页参数类不要加入过多其他计算方法,这些方法可由js处理
@simon511
排序可以再加入一个OrderMode之类的类处理,这样底层开放的接口可以灵活些
List find(Pagination pagination,OrderMode orderMode);
List find(Pagination pagination);
欢迎排砖
1 赞赏搂主晒代码的勇气!
2 分页类应该只是分页参数类,尽量做到简单,不应该耦合HttpServletRequest/HttpServletResponse/DaoFactory
@qianlei007
建议分页参数类不要加入过多其他计算方法,这些方法可由js处理
@simon511
排序可以再加入一个OrderMode之类的类处理,这样底层开放的接口可以灵活些
List find(Pagination pagination,OrderMode orderMode);
List find(Pagination pagination);
欢迎排砖
43 楼
seasar
2008-11-18
很糟糕的编码风格
42 楼
frogfool
2008-11-18
my pagination source code
package commons.param; import java.io.Serializable; import java.util.List; import commons.util.Assertion; public class Pagination implements Serializable { /** * */ private static final long serialVersionUID = -8771057905059891041L; public static final int DEFAULT_SIZE = 20; /** items */ private List items; /** index */ private int index = 1; /** size */ private int size = DEFAULT_SIZE; /** count */ private int count = -1; /** count or not */ private boolean counted = false; public Pagination() { } public Pagination(int size) { Assertion.isPositive(size, "The [size] argument should be greater than zero."); this.size = size; } public Pagination(List items, int count, int index, int size) { this.setItems(items); this.setCount(count); this.setIndex(index); this.setSize(size); } /** * item count in current page * * @return */ public int getLength() { if (null != items) { return items.size(); } return 0; } //setter/getter of private members //... }
//Assertion package commons.util; import org.springframework.util.Assert; public class Assertion extends Assert { //...other Asserts public static void isPositive(long value, String message) { if (value <= 0) { throw new IllegalArgumentException(message); } } //...other Asserts }
Web browser(IE,FireFox) get response data in json format(generate by freemarker) from server(WebWork)
//pagination.json.ftl //usage: <#include "/system/support/pagination.json.ftl" /> { pagination: { <#if pagination ? exists> index: ${(pagination.index)?default(1)}, length: ${(pagination.getLength())?default(0)}, size: ${(pagination.size)?default(20)}, count: ${(pagination.count)?default(0)}, counted: ${(pagination.counted)?string("true","false")} <#else> index: 1, length: 0, size: 10, count: 0, counted: false </#if> } }
render view with js component
function XPagination() { //... } var xpagination = new XPagination(o.pagination);
41 楼
wdlfellow
2008-11-18
上一站,火星 写道
有啥好show的?写的这么烂
给人家留点面子唉,呵呵,看得出来工作不久,态度很好,我觉得这已经足够了,设计上的不足要加强学习了
40 楼
xuming9
2008-11-18
bubble 写道
支持一下楼主,给你贴一个我最近写的一个分页:
package org.base; import java.util.List; /** * * @author Bubble zheshexian@gmail.com * */ public class Page { ....
呵呵,兄弟,
俺献丑了,
39 楼
jltest
2008-11-18
命名不规范,HTML与类和在一起。
还有居然不用StringBuilder或StringBuffer。
注释没有。
垃圾代码没有删。
很烂。。。
还有居然不用StringBuilder或StringBuffer。
注释没有。
垃圾代码没有删。
很烂。。。
38 楼
EXvision
2008-11-18
bubble 写道
支持一下楼主,给你贴一个我最近写的一个分页:
package org.base; import java.util.List; /** * * @author Bubble zheshexian@gmail.com * */ public class Page { ......
楼上的也是在拼html。拜倒了。就一个你人支持楼主。。。看看别人回帖先。。
37 楼
bubble
2008-11-18
支持一下楼主,给你贴一个我最近写的一个分页:
package org.base; import java.util.List; /** * * @author Bubble zheshexian@gmail.com * */ public class Page { public final static String CUSTOM="custom"; public final static String ARRAY="array"; public final static int SIZE=10; public final static int PAGE_ARRAY_LRNGTH=10; @SuppressWarnings("unchecked") private List items; private int totalItems; private int size=Page.SIZE; private int page; @SuppressWarnings("unused") private String action; @SuppressWarnings("unused") private String form; private int total;//total pages private int pageArrayLength=Page.PAGE_ARRAY_LRNGTH; private String type=Page.ARRAY; private String toString; /** * * @param items current page content. * @param totalItems all of the query data amount. * @param size page size. * @param page current page. */ @SuppressWarnings("unchecked") public Page(List items, int totalItems, int size, int page) { this.setSize(size); this.setItems(items); this.setTotalItems(totalItems); this.setPage(page); this.setToString(); } public void setTotalItems(int totalItems) { this.totalItems = totalItems; if (this.totalItems > 0) { if (this.totalItems % this.size == 0)this.total=(this.totalItems/this.size); else this.total=(this.totalItems/this.size)+1; } else this.total = 0; } /** * return page string. */ public String toString(){ //templet:【共13条记录】【当前为1到5条】【首页】【上页】【下页】【尾页】【第1页/共3页】 //templet:【共13条记录】 totalItemsString //templet:【当前为1到5条】 crruentItemsString //templet:【首页】 firstPageString //templet:【上页】 beforePageString //templet:【1】...7 8【9】11 12...【33】 pagesArrayString //templet:【下页】 afterPageString //templet:【尾页】 lastPageString //templet:【当前为第1页】 crruentPageString //templet:【共3页】 totalPagesString if(Page.CUSTOM.equals(this.type)){ return this.CustomTypeString(); }else{ return this.PagesArrayString(); } } private String CustomTypeString(){ return this.getTotalItemsString()+ this.getCrruentItemsString()+ this.getFirstPageString()+ this.getBeforePageString()+ this.getAfterPageString()+ this.getLastPageString()+ this.getCrruentPageString()+ this.getTotalPagesString(); } public String getTotalItemsString(){ return "【共"+this.totalItems+"条记录】"; } public String getCrruentItemsString(){ int f=(this.page-1)*this.size+1; int l=this.page*this.size; if(this.total==0)return ""; else if(l>this.totalItems)return f==this.totalItems?"【当前为第"+f+"条】":"【当前为"+f+"到"+this.totalItems+"条】"; else return "【当前为"+f+"到"+l+"条】"; } public String getTotalPagesString(){ return this.total==0?"":"【共"+this.total+"页】"; } public String getCrruentPageString(){ return this.total==0?"":"【当前为第"+this.page+"页】"; } public String getFirstPageString(){ if(this.total==0)return ""; else return this.page==1?"【首页】":this.PagesArrayStringUtil(1, "【首页】", true); } public String getBeforePageString(){ if(this.total==0)return ""; else return this.page==1?"【上页】":this.PagesArrayStringUtil((this.page-1), "【上页】", true); } public String getAfterPageString(){ if(this.total==0)return ""; else return this.page==this.total?"【下页】":this.PagesArrayStringUtil((this.page+1), "【下页】", true); } public String getLastPageString(){ if(this.total==0)return ""; else return this.page==this.total?"【尾页】":this.PagesArrayStringUtil(this.total, "【尾页】", true); } private String PagesArrayString(){ String text=""; //1...b~cp~n...t ,b<=cp<=n,1<=cp<=t int t=this.total; int l=this.pageArrayLength%2==1?this.pageArrayLength:this.pageArrayLength+1; int cp=this.page; int b=cp-(l-1)/2; int n=cp+(l-1)/2; if(t==0)return ""; else if(t==1)return this.PagesArrayStringUtil(1, true); else{ if(b<=2){ if(n<t-1){//b<=2&&n<t-1, 1~n...t for(int i=1;i<=n;i=i+1){ if(i==1||i==this.page||i==t)text+=this.PagesArrayStringUtil(i, true); else text+=this.PagesArrayStringUtil(i, false); } text+="..."; text+=this.PagesArrayStringUtil(t, true); return text; }else{//b<=2&&n>=t-1, 1~t for(int i=1;i<=t;i=i+1){ if(i==1||i==this.page||i==t)text+=this.PagesArrayStringUtil(i, true); else text+=this.PagesArrayStringUtil(i, false); } return text; } }else{ if(n<t-1){//b>2&&n<t-1, 1...b~n...t text+=this.PagesArrayStringUtil(1, true); text+="..."; for(int i=b;i<=n;i=i+1){ if(i==1||i==this.page||i==t)text+=this.PagesArrayStringUtil(i, true); else text+=this.PagesArrayStringUtil(i, false); } text+="..."; text+=this.PagesArrayStringUtil(t, true); return text; }else{//b>2&&n>=t-1, 1...b~t text+=this.PagesArrayStringUtil(1, true); text+="..."; for(int i=b;i<=t;i=i+1){ if(i==1||i==this.page||i==t)text+=this.PagesArrayStringUtil(i, true); else text+=this.PagesArrayStringUtil(i, false); } return text; } } } } /** * * @param page page index number. * @param current whether is current page. * @return */ private String PagesArrayStringUtil(int page,boolean current){ return this.PagesArrayStringUtil(page, page+"", current); } /** * * @param page page index number. * @param templet return string templet * @param current whether is current page. * @return */ private String PagesArrayStringUtil(int page,String templet,boolean current){ if(current) return "<b><a href='page.action?page="+page+"'>"+templet+"</a></b>"; else return "<a href='page.action?page="+page+"'>"+templet+"</a>"; } public int getTotal(){ return this.total; } @SuppressWarnings("unused") public void setAction(String action) { this.action=action; } public void setForm(String form) { this.form=form; } public int getSize() { return size; } private void setSize(int size) { this.size = size<1?Page.SIZE:size; } public List<?> getItems() { return items; } public int getTotalItems() { return totalItems; } public void setPage(int page) { if(page<1)this.page=1; else this.page = page>this.total?this.total:page; } @SuppressWarnings("unchecked") public void setItems(List items) { this.items = items; } public void setPageArrayLength(int pageArrayLength) { this.pageArrayLength = pageArrayLength; } public void setType(String type) { this.type = type; } public String getToString() { return toString; } private void setToString() { this.toString = this.toString(); } }
36 楼
qianlei007
2008-11-18
simon511 写道
qianlei007 写道
import java.io.Serializable; import java.util.ArrayList; import org.system.client.core.utils.StringUtils; /** * 分页对象. 包含当前页数据及分页信息如总记录数. * */ public class Page implements Serializable { /** * */ private static final long serialVersionUID = -8065871877230151987L; private static int DEFAULT_PAGE_SIZE = 8; private int pageSize = DEFAULT_PAGE_SIZE; // 每页的记录数 private long start; // 当前页第一条数据在List中的位置,从0开始 private Object data; // 当前页中存放的记录,类型一般为List private long totalCount; // 总记录数 private int skipPageNo; /** * 构造方法,只构造空页. */ public Page() { this(0, 0, DEFAULT_PAGE_SIZE, new ArrayList()); } /** * 默认构造方法. * * @param start * 本页数据在数据库中的起始位置 * @param totalSize * 数据库中总记录条数 * @param pageSize * 本页容量 * @param data * 本页包含的数据 */ public Page(long start, long totalSize, int pageSize, Object data) { this.pageSize = pageSize; this.start = start; this.totalCount = totalSize; this.data = data; } /** * @param start * @param pageSize */ public Page(String start, String pageSize) { this(StringUtils.parseInt(start), 0, (StringUtils.parseInt(pageSize) == 0 ? DEFAULT_PAGE_SIZE : StringUtils.parseInt(pageSize)), new ArrayList()); } /** * 取总记录数. */ public long getTotalCount() { return this.totalCount; } /** * 取总页数. */ public long getTotalPageCount() { if (totalCount % pageSize == 0) return totalCount / pageSize; else return totalCount / pageSize + 1; } /** * 取每页数据容量. */ public int getPageSize() { return pageSize; } /** * 取当前页中的记录. */ public Object getResult() { return data; } /** * 取该页当前页码,页码从1开始. */ public long getCurrentPageNo() { return start / pageSize + 1; } /** * 该页是否有下一页. */ public boolean hasNextPage() { return this.getCurrentPageNo() < this.getTotalPageCount() - 1; } /** * 该页是否有上一页. */ public boolean hasPreviousPage() { return this.getCurrentPageNo() > 1; } /** * 获取任一页第一条数据在数据集的位置,每页条数使用默认值. * * @see #getStartOfPage(int,int) */ protected static int getStartOfPage(int pageNo) { return getStartOfPage(pageNo, DEFAULT_PAGE_SIZE); } /** * 获取任一页第一条数据在数据集的位置. * * @param pageNo * 从1开始的页号 * @param pageSize * 每页记录条数 * @return 该页第一条数据 */ public static int getStartOfPage(int pageNo, int pageSize) { return (pageNo - 1) * pageSize; } public int getSkipPageNo() { return skipPageNo; } public void setSkipPageNo(int skipPageNo) { this.skipPageNo = skipPageNo; } public int getStart() { return Long.valueOf(start).intValue(); } public void setTotalCount(long totalCount) { this.totalCount = totalCount; } public void setResult(Object data) { this.data = data; } }
不知道有人看没!
如果把page传给dao层,至少还要增加个属性 sortType 按什么排序
public Page pagedQuery(String hql, Page page, Object... values) { Assert.hasText(hql); // Assert.isTrue(pageNo >= 1, "pageNo should start from 1"); // Count查询 String countQueryString = " select count (*) " + removeSelect(removeOrders(hql)); List countlist = getHibernateTemplate().find(countQueryString, values); long totalCount = (Long) countlist.get(0); if (totalCount < 1) return page; // 实际查询返回分页对象 // int startIndex = Page.getStartOfPage(pageNo, pageSize); Query query = createQuery(hql, values); List list = query.setFirstResult(page.getStart()).setMaxResults( page.getPageSize()).list(); page.setResult(list); page.setTotalCount(totalCount); return page; }
35 楼
04023129
2008-11-18
把HTML放在action里面写。。。真的很难看啊
34 楼
softcat
2008-11-18
写得真烂!
33 楼
simon511
2008-11-18
qianlei007 写道
import java.io.Serializable; import java.util.ArrayList; import org.system.client.core.utils.StringUtils; /** * 分页对象. 包含当前页数据及分页信息如总记录数. * */ public class Page implements Serializable { /** * */ private static final long serialVersionUID = -8065871877230151987L; private static int DEFAULT_PAGE_SIZE = 8; private int pageSize = DEFAULT_PAGE_SIZE; // 每页的记录数 private long start; // 当前页第一条数据在List中的位置,从0开始 private Object data; // 当前页中存放的记录,类型一般为List private long totalCount; // 总记录数 private int skipPageNo; /** * 构造方法,只构造空页. */ public Page() { this(0, 0, DEFAULT_PAGE_SIZE, new ArrayList()); } /** * 默认构造方法. * * @param start * 本页数据在数据库中的起始位置 * @param totalSize * 数据库中总记录条数 * @param pageSize * 本页容量 * @param data * 本页包含的数据 */ public Page(long start, long totalSize, int pageSize, Object data) { this.pageSize = pageSize; this.start = start; this.totalCount = totalSize; this.data = data; } /** * @param start * @param pageSize */ public Page(String start, String pageSize) { this(StringUtils.parseInt(start), 0, (StringUtils.parseInt(pageSize) == 0 ? DEFAULT_PAGE_SIZE : StringUtils.parseInt(pageSize)), new ArrayList()); } /** * 取总记录数. */ public long getTotalCount() { return this.totalCount; } /** * 取总页数. */ public long getTotalPageCount() { if (totalCount % pageSize == 0) return totalCount / pageSize; else return totalCount / pageSize + 1; } /** * 取每页数据容量. */ public int getPageSize() { return pageSize; } /** * 取当前页中的记录. */ public Object getResult() { return data; } /** * 取该页当前页码,页码从1开始. */ public long getCurrentPageNo() { return start / pageSize + 1; } /** * 该页是否有下一页. */ public boolean hasNextPage() { return this.getCurrentPageNo() < this.getTotalPageCount() - 1; } /** * 该页是否有上一页. */ public boolean hasPreviousPage() { return this.getCurrentPageNo() > 1; } /** * 获取任一页第一条数据在数据集的位置,每页条数使用默认值. * * @see #getStartOfPage(int,int) */ protected static int getStartOfPage(int pageNo) { return getStartOfPage(pageNo, DEFAULT_PAGE_SIZE); } /** * 获取任一页第一条数据在数据集的位置. * * @param pageNo * 从1开始的页号 * @param pageSize * 每页记录条数 * @return 该页第一条数据 */ public static int getStartOfPage(int pageNo, int pageSize) { return (pageNo - 1) * pageSize; } public int getSkipPageNo() { return skipPageNo; } public void setSkipPageNo(int skipPageNo) { this.skipPageNo = skipPageNo; } public int getStart() { return Long.valueOf(start).intValue(); } public void setTotalCount(long totalCount) { this.totalCount = totalCount; } public void setResult(Object data) { this.data = data; } }
不知道有人看没!
如果把page传给dao层,至少还要增加个属性 sortType 按什么排序
32 楼
xuming9
2008-11-18
displaytag功能很强大啊,不过好像只能应用在table里把
我们美工最烦用table,啥都用ul
看来要招美工谈谈,table有多好了
What can I do with it?
Actually the display tag library can just... display tables! Give it a list of objects and it will handle column display, sorting, paging, cropping, grouping, exporting, smart linking and decoration of a table in a customizable XHTML style.
我们美工最烦用table,啥都用ul
看来要招美工谈谈,table有多好了
What can I do with it?
Actually the display tag library can just... display tables! Give it a list of objects and it will handle column display, sorting, paging, cropping, grouping, exporting, smart linking and decoration of a table in a customizable XHTML style.
31 楼
qianlei007
2008-11-18
import java.io.Serializable; import java.util.ArrayList; import org.system.client.core.utils.StringUtils; /** * 分页对象. 包含当前页数据及分页信息如总记录数. * */ public class Page implements Serializable { /** * */ private static final long serialVersionUID = -8065871877230151987L; private static int DEFAULT_PAGE_SIZE = 8; private int pageSize = DEFAULT_PAGE_SIZE; // 每页的记录数 private long start; // 当前页第一条数据在List中的位置,从0开始 private Object data; // 当前页中存放的记录,类型一般为List private long totalCount; // 总记录数 private int skipPageNo; /** * 构造方法,只构造空页. */ public Page() { this(0, 0, DEFAULT_PAGE_SIZE, new ArrayList()); } /** * 默认构造方法. * * @param start * 本页数据在数据库中的起始位置 * @param totalSize * 数据库中总记录条数 * @param pageSize * 本页容量 * @param data * 本页包含的数据 */ public Page(long start, long totalSize, int pageSize, Object data) { this.pageSize = pageSize; this.start = start; this.totalCount = totalSize; this.data = data; } /** * @param start * @param pageSize */ public Page(String start, String pageSize) { this(StringUtils.parseInt(start), 0, (StringUtils.parseInt(pageSize) == 0 ? DEFAULT_PAGE_SIZE : StringUtils.parseInt(pageSize)), new ArrayList()); } /** * 取总记录数. */ public long getTotalCount() { return this.totalCount; } /** * 取总页数. */ public long getTotalPageCount() { if (totalCount % pageSize == 0) return totalCount / pageSize; else return totalCount / pageSize + 1; } /** * 取每页数据容量. */ public int getPageSize() { return pageSize; } /** * 取当前页中的记录. */ public Object getResult() { return data; } /** * 取该页当前页码,页码从1开始. */ public long getCurrentPageNo() { return start / pageSize + 1; } /** * 该页是否有下一页. */ public boolean hasNextPage() { return this.getCurrentPageNo() < this.getTotalPageCount() - 1; } /** * 该页是否有上一页. */ public boolean hasPreviousPage() { return this.getCurrentPageNo() > 1; } /** * 获取任一页第一条数据在数据集的位置,每页条数使用默认值. * * @see #getStartOfPage(int,int) */ protected static int getStartOfPage(int pageNo) { return getStartOfPage(pageNo, DEFAULT_PAGE_SIZE); } /** * 获取任一页第一条数据在数据集的位置. * * @param pageNo * 从1开始的页号 * @param pageSize * 每页记录条数 * @return 该页第一条数据 */ public static int getStartOfPage(int pageNo, int pageSize) { return (pageNo - 1) * pageSize; } public int getSkipPageNo() { return skipPageNo; } public void setSkipPageNo(int skipPageNo) { this.skipPageNo = skipPageNo; } public int getStart() { return Long.valueOf(start).intValue(); } public void setTotalCount(long totalCount) { this.totalCount = totalCount; } public void setResult(Object data) { this.data = data; } }
不知道有人看没!
30 楼
troyconder
2008-11-18
勿怪 不过我的确感觉你这么设计非常不好 极高的耦合 极好的维护难度 可读性也比较差 而且直接把请求传入javabean也是非常不好的做法 可能对于你的应用比较好用吧 毋怪
29 楼
xuming9
2008-11-18
再次感谢楼上的兄弟们提出宝贵意见,
最后大家也show些自己的类把,哈哈
最后大家也show些自己的类把,哈哈
相关推荐
2. **样式调整**:可以通过调整类中的属性值来改变分页组件的外观,例如更改文字、图标等。 #### 六、总结 PHP超强分页类不仅提供了基础的分页功能,还支持自定义显示模式、AJAX分页等功能,使得开发者能够根据项目...
在实际使用中,开发者可以通过`ShowPage`类设置分页参数,然后调用其内部的查询方法,由`ShowSQL.java`生成对应的SQL语句,最后执行查询并返回结果。这个过程中,`StringUtil.java`起到辅助作用,确保SQL的正确性和...
5. **show_page.rar**:这个名字暗示可能是一个分页类,用于处理大型数据集的分页显示,常用于网页上显示大量的记录时,提高用户体验。 6. **adodb300.tgz**:ADODB(Active Record Object-Database Bridge)是一个...
根据给定的信息,本文将对一个“简单、方便、功能全”的PHP分页类进行详细的解析,包括其构造方法、属性、以及如何实现分页显示的功能。通过本篇内容,您将了解到该类的设计思想、核心函数的工作原理,以及如何在...
此外,类中的`show`方法(在文档片段中未显示)应该负责将处理好的分页数据转换为HTML输出。 ### 结论 通过以上知识点的讨论,我们可以看出,万能的PHP分页类对于快速开发和实现分页功能是非常有帮助的。开发者只...
此外,类内部可能有错误处理机制,如`ErrInfo`和`ShowError`方法,当参数错误或出现异常时,会显示相应的错误信息。 总的来说,这个ASP超强分页类通过优化代码和算法,提高了处理大量数据时的分页效率,同时提供了...
分页类支持四种不同的分页模式,可以通过`show`方法的参数来切换。这四种模式可能包括不同的显示样式或链接结构,例如,模式1可能是基础的数字链接,模式2可能包含上一页/下一页按钮等。 5. **AJAX支持** 当`is_...
当网站的留言内容越来越多的时候,分页功能的应用就应运而生了,来重点讲解下ThinkPHP框架自带的分页类的调用。 知识点: 1、count函数的试用 2、Page类实例化操作及相关参数了解 3、limit函数了用 4、show函数...
`Page`类提供了`show()`方法,用于生成分页的HTML代码。默认情况下,它会根据设定的样式生成完整的分页链接。例如: ```php echo $Page->show(); // 输出分页HTML ``` 4. **获取分页数据**: 调用`Page`类的`...
ThinkPhp仿百度分页类,在ThinkPhp3.1.3下测试通过 Author: 泡泡堂 <46445280@qq.com> 参照 ThinkPhp3.1.3 及 ThinkPhp3.2.1护展包下的 Page.class.php 说明:在ThinkPhp3.1.3下测试通过,其它版本未做测试 ...
`Show.asp`文件可能是展示分页数据的主页面。在这个文件中,我们需要实例化分页类,传入必要的参数如每页显示的记录数、当前页数、数据库连接信息等。然后调用`GetPageData()`方法获取当前页的数据,并在HTML中进行...
* description:超强分页类,四种分页模式,默认采用类似baidu,google的分页风格。 * 2.0增加功能:支持自定义风格,自定义样式,同时支持PHP4和PHP5, * to see detail,please visit ...
php 分页类,很方便使用 ////演示 ////require_once('../libs/classes/page.class.php'); //$page=new minupage(array('total'=>1000,'perpage'=>20)); //echo 'mode:1 '.$page->show(); //echo '<hr>mode:2 '...
自己写的简单实用的PHP分页类,支持URL重写,支持多种选项设置 包括: show_list-是否显示数字列表页码 list_num-当显示数字列表页码时该变量表示数字的数量 prefix-当使用URL重写时使用该变量值连接表示的页码的GET...
当网站的留言内容越来越多的时候,分页功能的应用就应运而生了,来重点讲解下ThinkPHP框架自带的分页类的调用。 知识点: 1、count函数的试用 2、Page类实例化操作及相关参数了解 3、limit函数了用 4、...
在网页开发中,分页是一种常见的用户界面设计,用于处理大量数据时的浏览体验优化。jQuery,作为一个轻量级的JavaScript库,提供了丰富的插件来实现分页功能。本篇文章将详细讲解如何使用jQuery分页插件来设置分页...
通过以上步骤,你可以实现Struts2.0框架下的数据分页功能。注意,为了优化性能和用户体验,还应考虑缓存策略、错误处理和异常处理等细节。同时,随着技术的发展,现代的Web应用可能更倾向于使用ORM框架(如Hibernate...
一种是最简单的普通分页模式[首页] [上页] [下页] [尾页]模式,另一种是经典分页模式,即:[1][2][3][4][5][6][7][8][9][10][下一页][尾页]。 使用方法 require_once 'pager.class.php'; $pager = new pager($...