public class PageBean {
/** 每页显示记录数 */
private int pageCount;
/** 是否有上一页 */
private boolean hasPrevPage;
/** 记录总数 */
private int recordCount;
/** 是否有下一页 */
private boolean hasNextPage;
/**总页面数 */
private int totalPage;
/** 当前页码数 */
private int currentPage;
/**
* 分页前的页面地址
*/
private String pageUrl;
/**
* 输出分页 HTML 页面跳转代码, 分链接和静态文字两种.
* 2008-07-22
* @return HTML 代码
*/
public String getPageJumpLinkHtml() {
if(StringUtil.isEmpty(pageUrl)) {
return "";
}
// 检查是否有参数符号, 没有就加上一个?
if(pageUrl.indexOf('?') == -1) {
pageUrl = pageUrl + '?';
}
StringBuffer buff = new StringBuffer("<span id='pageText'>");
// 上一页翻页标记
if(currentPage > 1) {
buff.append("[ <a href='" + pageUrl + "&page=" + (currentPage - 1) + "' title='转到第 "
+ (currentPage - 1) + " 页'>上一页</a> ] ");
} else {
buff.append("[ 上一页 ] ");
}
// 下一页翻页标记
if(currentPage < getTotalPage()) {
buff.append("[ <a href='" + pageUrl + "&page=" + (currentPage + 1)+ "' title='转到第 "
+ (currentPage + 1) + " 页'>下一页</a> ] ");
} else {
buff.append("[ 下一页 ] ");
}
buff.append("</span>");
return buff.toString();
}
/**
* 输出页码信息: 第${currentPage}页/共${totalPage}页
* @return
*/
public String getPageCountHtml() {
return "第" + currentPage + "页/共" + getTotalPage() + "页";
}
/**
* 输出 JavaScript 跳转函数代码
* @return
*/
public String getJavaScriptJumpCode() {
if(StringUtil.isEmpty(pageUrl)) {
return "";
}
// 检查是否有参数符号, 没有就加上一个?
if(pageUrl.indexOf("?") == -1) {
pageUrl = pageUrl + '?';
}
return "<script>" +
"// 页面跳转函数\n" +
"// 参数: 包含页码的表单元素,例如输入框,下拉框等\n" +
"function jumpPage(input) {\n" +
" // 页码相同就不做跳转\n" +
" if(input.value == " + currentPage + ") {" +
" return;\n" +
" }" +
" var newUrl = '" + pageUrl + "&page=' + input.value;\n" +
" document.location = newUrl;\n" +
" }\n" +
" </script>";
}
/**
* 输出页面跳转的选择框和输入框. 示例输出:
* <pre>
转到
<!-- 输出 HTML SELECT 元素, 并选中当前页面编码 -->
<select onchange='jumpPage(this);'>
<c:forEach var="i" begin="1" end="${totalPage}">
<option value="${i}"
<c:if test="${currentPage == i}">
selected
</c:if>
>第${i}页</option>
</c:forEach>
</select>
输入页码:<input type="text" value="${currentPage}" id="jumpPageBox" size="3">
<input type="button" value="跳转" onclick="jumpPage(document.getElementById('jumpPageBox'))">
</pre>
* @return
*/
public String getPageFormJumpHtml() {
String s = "转到\n" +
"\t <!-- 输出 HTML SELECT 元素, 并选中当前页面编码 -->\n" +
" <select onchange='jumpPage(this);'>\n" +
" \n";
for(int i = 1; i <= getTotalPage(); i++ ) {
s += "<option value=" + i + "\n";
if(currentPage == i) {
s+= " selected ";
}
s += "\t>第" + i + "页</option>\n";
}
s+=
" </select>\n" +
" 输入页码:<input type=\"text\" value=\"" + currentPage + "\" id=\"jumpPageBox\" size=\"3\"> \n" +
" <input type=\"button\" value=\"跳转\" onclick=\"jumpPage(document.getElementById('jumpPageBox'))\"> ";
return s;
}
/**
* 进行分页计算.
*/
private void calculate() {
if (getPageCount() == 0) {
setPageCount(1);
}
totalPage = (int) Math.ceil(1.0 * getRecordCount() / getPageCount()); // 总页面数
if (totalPage == 0)
totalPage = 1;
// Check current page range, 2006-08-03
if(currentPage > totalPage) {
currentPage = totalPage;
}
// System.out.println("currentPage=" + currentPage);
// System.out.println("maxPage=" + maxPage);
// // Fixed logic error at 2004-09-25
hasNextPage = currentPage < totalPage;
hasPrevPage = currentPage > 1;
return;
}
/**
* @return Returns the 最大页面数.
*/
public int getTotalPage() {
calculate();
return totalPage;
}
/**
* @param currentPage
* The 最大页面数 to set.
*/
@SuppressWarnings("unused")
private void setTotalPage(int maxPage) {
this.totalPage = maxPage;
}
/**
* 是否有上一页数据
*/
public boolean hasPrevPage() {
calculate();
return hasPrevPage;
}
/**
* 是否有下一页数据
*/
public boolean hasNextPage() {
calculate();
return hasNextPage;
}
// Test
public static void main(String[] args) {
PageBean pc = new PageBean();
pc.setCurrentPage(2);
pc.setPageCount(4);
pc.setRecordCount(5);
pc.setPageUrl("product/list.do");
System.out.println("当前页 " + pc.getCurrentPage());
System.out.println("有上一页 " + pc.hasPrevPage());
System.out.println("有下一页 " + pc.hasNextPage());
System.out.println("总页面数 " + pc.getTotalPage());
System.out.println("分页 HTML 代码 " + pc.getPageJumpLinkHtml());
}
/**
* @return Returns the 当前页码数.
*/
public int getCurrentPage() {
return currentPage;
}
/**
* 设置当前页码, 从 1 开始.
* @param currentPage
* The 当前页码数 to set.
*/
public void setCurrentPage(int currentPage) {
if (currentPage <= 0) {
currentPage = 1;
}
this.currentPage = currentPage;
}
/**
* @return Returns the recordCount.
*/
public int getRecordCount() {
return recordCount;
}
/**
* @param recordCount
* The recordCount to set.
*/
public void setRecordCount(int property1) {
this.recordCount = property1;
}
/**
* @return Returns the 每页显示记录数.
*/
public int getPageCount() {
return pageCount;
}
/**
* @param pageCount
* The 每页显示记录数 to set.
*/
public void setPageCount(int pageCount) {
this.pageCount = pageCount;
}
public String getPageUrl()
{
return pageUrl;
}
public void setPageUrl(String value)
{
pageUrl = value;
}
}
分享到:
相关推荐
根据提供的文件信息,我们可以深入探讨Java分页技术的相关知识点,特别是Struts框架中的分页实现。下面将详细介绍分页的基本概念、Struts框架中的分页处理方式以及如何使用自定义的`PageController`类来实现分页功能...
page.java java分页工具类
本资源提供了一个完整的Java分页代码实现,包括注释,非常适合初学者学习和实践。 分页的核心原理是通过查询数据库时限制返回结果的数量,同时提供一个偏移量来指定从哪一条数据开始获取。在Java中,我们可以使用...
Java分页控件是Java开发中常用的一种组件,主要用于在大量数据展示时提供翻页功能,提高用户体验。在Web应用中,特别是在数据密集型的应用如电商、报表系统中,分页控件扮演着至关重要的角色。它允许用户按需加载...
本知识点主要讲解如何在Java中实现分页功能,以"java分页技巧1"为例。 首先,我们要理解四个核心变量的作用: 1. **pageSize**: 每页显示的记录数量。这决定了用户每次请求时看到的数据量。例如,如果设置为10,则...
在Java分页中,Ajax通过向后台发送请求获取新的分页数据,并在前端更新显示。 分页的基本流程通常包括以下步骤: 1. **前端页面设计**:创建一个包含分页导航的HTML页面,如页码链接或下拉框。页面应该有适当的...
Java分页标签是Java Web开发中的一个重要概念,它主要用于处理大量数据的展示,尤其是在数据库查询结果需要在网页上以多页形式呈现时。这个技术可以让用户更方便地浏览和导航大量的信息,而不会一次性加载所有数据...
Java分页组件是Java开发中常见的一种工具,用于在处理大量数据时,将结果集分割成多页显示,以提高用户界面的响应速度和用户体验。Oracle数据库是企业级常用的数据库系统,它支持复杂的SQL查询和大数据量的处理。在...
本资源“JAVA分页大全”是一个综合性的教程,旨在帮助开发者掌握Java中的各种分页实现方式。 1. **基础概念** 分页主要是为了将大数据集分割成小块,用户可以逐页浏览,而不是一次性显示所有数据。在Java中,分页...
### Java分页方法总结 #### 一、MySQL的分页技术 MySQL的分页操作相对简单,主要通过`LIMIT`语句实现。该语句允许开发者指定查询结果集中的起始位置以及返回的行数。这为实现网页上的分页功能提供了极大的便利。 ...
Java分页插件是开发大型数据应用时必不可少的工具,它可以帮助我们有效地管理数据库查询,减少服务器负担,提高用户体验。本插件以简单实用为特点,适合初学者和经验丰富的开发者使用,允许用户根据自己的需求进行...
本篇将详细介绍如何在SQL Server、MySQL和Oracle这三种主流数据库中实现Java分页。 一、SQL Server的Java分页 在SQL Server中,可以使用`OFFSET`和`FETCH`关键字实现分页。假设我们有一个名为`users`的表,想要...
虽然这里的代码示例采用的是ASP.NET的语法结构,但我们可以从中抽取出与Java分页相关的概念和技术要点,并结合Java环境进行阐述。 ### Java分页原理 分页是一种在数据量较大的情况下对数据进行分割展示的技术手段...
Java分页神器通过预编译SQL语句并动态生成合适的分页参数,避免了在代码中硬编码SQL,从而降低了出错的可能性,并提高了代码的可维护性。 在实际应用中,分页神器的主要功能包括: 1. 自动计算总记录数:无需额外...
Java分页jar包`pager.jar`是一个专门为Java Web应用程序提供分页功能的工具包,它极大地简化了在JSP页面中实现数据分页的过程。在Web开发中,尤其是在处理大量数据时,分页是一个必不可少的功能,它使得用户可以逐页...
这里的"JAVA分页源代码需要可以看下"提供了分页实现的源代码示例,我们可以深入探讨一下Java中的分页实现方法。 1. **JDBC分页** 在Java中,最基本的分页实现方式是通过JDBC直接操作SQL。通常,我们需要在SQL查询...
综上所述,"java分页显示"项目涵盖了Java与MySQL数据库的交互、JSP页面设计、数据传输和显示等多个核心知识点,是学习Web开发过程中一个实用的实例。通过这个项目,开发者可以深入理解Web应用的前后端协作以及数据...
本教程将详细介绍一个简单、代码量少且易于理解的Java分页实现方法。 首先,我们要理解分页的基本概念。分页通常涉及到两个关键参数:当前页数(Page Number)和每页大小(Page Size)。通过这两个参数,我们可以...
本项目提供了一个自编的Java分页工具,旨在帮助开发者更方便地实现数据的分页显示。下面将详细介绍分页的基本原理以及这个分页工具可能包含的关键功能和实现方式。 分页的基本原理: 1. **数据查询**:首先,我们...