封装分页控件
2014-03-10 12:05
190 查看
1.定义封装类。
上面的父类BaseObject 定义如下
2.定义一个后台取数据的方法以及计算总数的方法
3.在需要的地方使用
4.前端显示
5.CSS样式。。TO BE CONTINUE...
import java.util.List; /** * 用户封装分页查询数据的类 * 通过构造方法来初始化一个分页信息对象供JSP页面使用 * @author gjf * */ @SuppressWarnings("serial") public class PageInfo extends BaseObject { private int pageIndex; // 当前第几页数据 private int pageSize; //每页要显示的最大记录个数 private int recordeCount; // 满足查询条件的总记录数 private int pageCount; // 满足条件的总页数 @SuppressWarnings("rawtypes") private List pageData; // 当前查询的分页数据 private boolean hasPreviousPage; //是否有上一页 private boolean hasNextPage; //是否有下一页 /** * 唯一可用的初始化分页信息的构造方法 * @param pageData 分页后的查询数据 * @param recordeCount //满足查询条件的总记录数 * @param pageIndex 当前查询的是第几页的数据 * @param pageSize 每页要显示的最大记录个数 */ @SuppressWarnings("rawtypes") public PageInfo(List pageData, int recordeCount, int pageIndex, int pageSize) { this.pageData = pageData; this.recordeCount = recordeCount; this.pageIndex = pageIndex; this.pageSize = pageSize; //计算总页数 pageCount = (recordeCount + pageSize - 1) / pageSize; //对于最后一页,计算实际的记录个数,因此最后一页的记录个数不一定等于设定的最大记录个数 if(pageIndex == pageCount) { this.pageSize = recordeCount - ((pageCount - 1) * pageSize); } this.setHasNextPage(this.isNextPageEnable()); this.setHasPreviousPage(this.isPreviousPageEnable()); } public int getPageIndex() { return pageIndex; } public int getPageSize() { return pageSize; } public int getRecordeCount() { return recordeCount; } public int getPageCount() { return pageCount; } @SuppressWarnings("rawtypes") public List getPageData() { return pageData; } public boolean isNextPageEnable() { return this.setHasNextPage(pageIndex < pageCount); } public boolean isPreviousPageEnable() { return this.setHasPreviousPage(pageIndex > 1); } public boolean setHasPreviousPage(boolean hasPreviousPage) { this.hasPreviousPage = hasPreviousPage; return hasPreviousPage; } public boolean isHasPreviousPage() { return hasPreviousPage; } public boolean setHasNextPage(boolean hasNextPage) { this.hasNextPage = hasNextPage; return hasNextPage; } public boolean isHasNextPage() { return hasNextPage; } }
上面的父类BaseObject 定义如下
import java.io.Serializable; import org.apache.commons.lang.builder.EqualsBuilder; import org.apache.commons.lang.builder.HashCodeBuilder; import org.apache.commons.lang.builder.ToStringBuilder; import org.apache.commons.lang.builder.ToStringStyle; /** * 基础ENTITY类 * 只实现equal()、hashCoce()、toString()方法 * @author gjf * */ public abstract class BaseObject implements Serializable{ private static final long serialVersionUID = -1L; public boolean equals(Object obj) { return EqualsBuilder.reflectionEquals(this, obj); } public int hashCode() { return HashCodeBuilder.reflectionHashCode(this); } public String toString() { return ToStringBuilder.reflectionToString(this, ToStringStyle.SHORT_PREFIX_STYLE); } }
2.定义一个后台取数据的方法以及计算总数的方法
public interface IXxxService { public List<Xxx> getXxxs(int id,int startIndex,int endIndex);
public int countXxx(); }
3.在需要的地方使用
List<Xxx> list=_ixxxService.getXxx(id,(pageIndex - 1) *pageSize,pageSize);//_ixxxServic 实现类对象 pageInfo=new PageInfo(list, rowCount, pageIndex, pageSize);
4.前端显示
<s:iterator value="pageInfo.pageData" var="item" status="sta">//struts2标签 <table width="100%" border="0" cellspacing="0" cellpadding="0" class="dd_main"> <tr> <td width="12%" align="center">${item.属性}</td> </tr> </table> </s:iterator> <p:page url="your url" pageInfo="${pageInfo }" />
5.CSS样式。。TO BE CONTINUE...
相关文章推荐
- 分页控件(easyUi自己封装过后的)
- 对分页控件进行分页的封装
- 菜鸟也封装之asp.net自定义双样式分页控件.
- 分页效果控件(封装较彻底)好用请 ‘顶’ 一下!
- 简单的html数据分页控件封装
- 使用amaze ui的分页样式封装一个通用的JS分页控件
- [转]Oracle分页之二:自定义web分页控件的封装
- 用@Html.EditorFor在MVC3中封装带表单(Form)提交的分页控件(通用代码)
- andorid封装分页控件
- Oracle分页之二:自定义web分页控件的封装
- 经典的JavaScript封装控件
- 一个优秀的分页控件
- ASP.NET 数据列表控件的分页总结
- 自己学习的分页控件
- 封装自己的控件库:iPhone静态库的应用
- DataGrid自定义分页控件WebControl
- 网上购物系统(Task007)——自定义DateList控件分页显示商品信息
- QuickPager asp.net 分页控件、表单控件等自定义控件下载 和介绍 【2009.09.07更新】
- 利用ListView和DataPager控件来对数据分页
- 【开源】QuickPager ASP.NET2.0分页控件V2.0.0.7 增加了一个js函数的分页方式。