`

分页组件实现

    博客分类:
  • JSP
阅读更多
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.sql.*"%>
<html>
<head>
<title>分页显示</title>
</head>
<body>
<center>
<h1>人员列表</h1>
<hr><br>
<%
// 进行乱码处理
request.setCharacterEncoding("GB2312");
%>
<%!
final String jspUrl = "list_person_sp.jsp";
%>
<%
// 定义如下分页变量
// 1、定义每页要显示的记录数
int lineSize = 10;
// 2、定义当前页
int currentPage = 1;
// 计算出总页数
int pageSize = 0;
// 总记录数
int allRecorders = 0;
// 加入查询关键字变量
String keyWord = "";
%>
<%
// 接收查询关键字
keyWord = request.getParameter("kw");
// 接收传过来的当前页
try {
currentPage = Integer.parseInt(request.getParameter("cp"));
} catch(Exception e) {
}
%>
<%
final String DBDRIVER = "org.gjt.mm.mysql.Driver";
final String DBURL = "jdbc:mysql://localhost/test";
final String DBUSER = "root";
final String DBPASSWORD = "depravedAngel";
Connection conn = null;
%>
<%
try {
Class.forName(DBDRIVER);
conn = DriverManager.getConnection(DBURL, DBUSER, DBPASSWORD);
String sql = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
if(keyWord == null || "".equals(keyWord)) {
sql = "SELECT COUNT(*) FROM person";
} else {
sql = "SELECT COUNT(*) FROM person WHERE uid LIKE ? OR name LIKE ?";

}
pstmt = conn.prepareStatement(sql);
if(!(keyWord == null || "".equals(keyWord))) {
pstmt.setString(1,"%" + keyWord + "%");
pstmt.setString(2,"%" + keyWord + "%");
}
rs = pstmt.executeQuery();
if(rs.next()){
allRecorders = rs.getInt(1);
}
rs.close();
pstmt.close();

// 计算总页数
      pageSize = (allRecorders+lineSize-1)/lineSize;
      if(keyWord == null || "".equals(keyWord)) {
      sql = "SELECT id,uid,name,password FROM person limit "
            + (currentPage-1)*lineSize + "," + lineSize;
      } else {
sql = "SELECT id,uid,name,password FROM person WHERE uid LIKE ? OR name LIKE ? limit "
            + (currentPage-1)*lineSize + "," + lineSize;
}

pstmt = conn.prepareStatement(sql);
if(!(keyWord == null || "".equals(keyWord))) {
pstmt.setString(1,"%" + keyWord + "%");
pstmt.setString(2,"%" + keyWord + "%");
}
rs = pstmt.executeQuery();
%>
<jsp:include page="split_page.jsp">
<jsp:param name="jspUrl" value="<%=jspUrl %>"/>
<jsp:param name="lineSize" value="<%=lineSize %>"/>
<jsp:param name="allRecorders" value="<%=allRecorders %>"/>
<jsp:param name="keyWord" value="<%=keyWord %>"/>
<jsp:param name="currentPage" value="<%=currentPage %>"/>
<jsp:param name="searchFlag" value="T"/>
</jsp:include>

<table border="1" width="80%">
<tr>
<td>编号</td>
<td>登陆名称</td>
<td>姓名</td>
<td>密码</td>
<td colspan="2">操作</td>
</tr>
<%
int i = 0;

// 对于输出代码之前要求按显示的页数空出
while(rs.next()) {
i++;
int id = rs.getInt(1);
String uid = rs.getString(2);
String name = rs.getString(3);
String password = rs.getString(4);
%>
<tr>
<td><%=id%></td>
<td><%=uid%></td>
<td><%=name%></td>
<td><%=password%></td>
<td>更新</td>
<td>删除</td>
</tr>
<%
}
rs.close();
pstmt.close();
if (i == 0) {
%>
<tr>
<td colspan="6">没有数据!!!</td>
</tr>
<%
}
%>
</table>
<%
} catch (Exception e) {
} finally {
conn.close();
}
%>
</center>
</body>
</html>

Java代码

<%@ page contentType="text/html;charset=gb2312"%>
<%
// 进行乱码处理
request.setCharacterEncoding("GB2312");

// 页面连接路径
String jspUrl = null;
// 定义如下分页变量
// 1、定义每页要显示的记录数
int lineSize = 10;
// 2、定义当前页
int currentPage = 1;
// 总记录数
int allRecorders = 0;
// 计算出总页数
int pageSize = 0;
// 加入查询关键字变量
String keyWord = "";
// 加入一个检索标记
String searchFlag = "F";

// 需要从外面接收以下参数
// 当前页、每页显示的记录数、总记录数、查询关键字、连接地址
jspUrl = request.getParameter("jspUrl");
keyWord = request.getParameter("keyWord");
searchFlag = request.getParameter("searchFlag");
try {
lineSize = Integer.parseInt(request.getParameter("lineSize"));
currentPage = Integer.parseInt(request.getParameter("currentPage"));
allRecorders = Integer.parseInt(request.getParameter("allRecorders"));
} catch(Exception e) {
}

// 计算总页数
pageSize = (allRecorders+lineSize-1)/lineSize;
%>
<script language="javaScript">
function openPage(curpage)
{
document.spage.cp.value = curpage;
document.spage.submit();
}
function selOpenPage()
{
document.spage.cp.value = document.spage.selpage.value;
document.spage.submit();
}
</script>
<form name="spage" action="<%=jspUrl %>">
<%
// 是否加入检索框,“T”表示加入
if("T".equals(searchFlag)){
%>
输入查询关键字:<input type="text" name="kw" value="<%=keyWord.equals("null")?"":keyWord %>">
<input type="submit" value="查询"><br><br>
<%
}
if(allRecorders > 0) {
    %>
<input type="button" value="首页" onClick="openPage(1)"
<%=currentPage==1?"disabled":"" %>>
<input type="button" value="上一页" onClick="openPage(<%=currentPage-1 %>)"
<%=currentPage==1?"disabled":"" %>>
<input type="button" value="下一页" onClick="openPage(<%=currentPage+1 %>)"
<%=currentPage==pageSize?"disabled":"" %>>
<input type="button" value="尾页" onClick="openPage(<%=pageSize %>)"
<%=currentPage==pageSize?"disabled":"" %>>
<input type="hidden" name="cp" value="">
<font color="red" size="5"><%=currentPage %></font>
/
<font color="red" size="5"><%=pageSize %></font>
跳转到
<select name="selpage" onChange="selOpenPage()">
<%
for(int x=1;x<=pageSize;x++){
%>
<option value="<%=x %>" <%=currentPage==x?"selected":"" %>><%=x %></option>
<%
}
%>
</select>

<%
}
%>
</form>
分享到:
评论

相关推荐

    JQuery分页组件实现代码.zip

    本压缩包“JQuery分页组件实现代码.zip”内包含了一个JQuery分页组件的实现,下面我们将深入探讨相关知识点。 1. **JQuery基础知识**:JQuery是由John Resig创建的JavaScript库,简化了DOM操作、事件处理和动画效果...

    Qt分页组件,参考的elementui的分页组件实现的

    在本文中,我们将深入探讨如何在Qt环境中实现一个分页组件,这个组件是基于流行的前端框架Element UI的分页设计灵感。Element UI以其简洁、易用的界面组件而闻名,而我们将探讨如何将这种设计理念应用于Qt开发,创建...

    QT5分页组件,可以实现简单的数据分页

    QT5分页组件是Qt框架中的一个重要组成部分,用于在用户界面中实现数据的分页显示。这个组件使得大量数据能够以更易于管理的方式呈现,提高用户体验,并减轻了系统的内存负担。在Qt5中,我们可以利用Qt Designer来...

    react-一款简单的react组件实现的分页

    "react-一款简单的react组件实现的分页"是一个实例,它展示了如何用React构建一个基础的分页组件。在这个项目中,`reactPagination-master`可能是源代码的主目录。接下来,我们将深入探讨React组件化思想以及如何...

    jquery实现分页组件

    **jQuery实现分页组件** 在Web开发中,分页是一种常见的功能,用于处理大量数据时,将内容分段展示,提高用户体验。jQuery是一款强大的JavaScript库,它简化了DOM操作、事件处理、动画制作等任务,同时也方便我们...

    一个用vue实现的分页组件

    这个“Vue实现的分页组件”是一个专门用于在Vue项目中实现分页功能的自定义组件。 首先,我们要理解Vue组件的基本概念。在Vue中,组件是可复用的代码块,可以视作独立的功能单元。它们有自己的属性(props)接收...

    JSF分页组件2

    在JSF中,我们可以使用各种分页组件来实现这一功能。本文将深入探讨JSF分页组件2的相关知识点,包括其原理、使用方法和最佳实践。 ### 1. 分页组件的基本概念 分页组件允许用户以有限的数量逐页查看数据,而不是一...

    Bootstrap分页组件的设计

    Bootstrap 分页组件的设计 Bootstrap 分页组件的设计是基于 Bootstrap 前端开发框架,简单设计了前端分页控件。该组件提供了一个基本的分页控件,能够满足大多数情况下的分页需求。 分页组件的结构 分页组件的...

    qt自定义分页组件源代码

    在这个项目中,我们有`qt自定义分页组件源代码`,它包含了实现这一功能的核心源码和测试代码。下面我们将详细探讨这些源文件及其在QT开发中的作用。 首先,`zpagewidget.cpp`和`zpagewidget.h`是自定义分页组件的...

    比较好用的分页组件

    标题中的“比较好用的分页组件”通常指的是在软件开发中用于处理大量数据分页显示的工具或库。在Web应用开发中,由于一次性加载所有数据可能会导致性能问题,因此分页组件是必不可少的。这类组件能帮助开发者高效地...

    自己写的分页组件

    标题中的“自己写的分页组件”表明我们即将讨论的是一个自定义实现的用于数据分页的软件组件。在Web开发中,分页是常见的功能,它允许用户按页浏览大量数据,提高用户体验并减轻服务器负载。这个组件可能是用Java...

    Flex 分页组件,flex自定义组件

    Flex分页组件是一种在Flex应用程序中用于展示大量数据并分批加载的重要工具。它通过将大量数据分成小块,每次只加载一部分,提高了用户界面的响应速度和用户体验。本组件适用于那些需要显示大量数据,如表格、列表...

    小程序自定义分页选择组件

    - 自定义样式:通过组件的自定义样式能力,开发者可以根据品牌风格调整分页组件的颜色、大小等外观属性。 - 动画效果:添加过渡动画,如滑动切换页码时的平滑效果,可以提升用户体验。 - 分页模式:支持多种分页...

    分页组件+反射分页组件+反射分页组件+反射

    将分页组件与反射相结合,可以实现更加灵活和动态的分页功能。下面我们将深入探讨这两个知识点。 首先,让我们来了解一下分页组件。在Web开发中,分页通常用于显示数据库或其他数据源中的大量数据。它将数据分割成...

    分页组件

    这篇博客文章可能详细介绍了如何实现一个自定义的分页组件,以及如何将这个组件应用到实际项目中。 分页组件通常包括以下几个核心功能: 1. **显示总页数**:根据总数据量和每页显示的数据数量计算出总的页数。 2. ...

    Avuepaginationcomponent一个vue分页组件

    "Avuepaginationcomponent" 提供了一个针对Vue.js的分页组件,这使得在Vue项目中实现分页变得更加简单。 首先,我们来深入了解Vue分页组件的基本概念。在Vue.js中,组件是可复用的代码块,它们可以独立地承担特定的...

    一个不错的分页组件,很简单

    标题提到的是“一个不错的分页组件”,描述中指出该组件简单易用,能有效节省开发时间,这表明我们即将探讨的是一款高效、便捷的分页解决方案。 分页组件通常包含以下几个核心功能: 1. **显示页码**:分页组件会...

    java分页组件和poolman demo

    1. **Java分页组件**:该组件通常会提供一套接口或类库,使得开发者能够轻松地在Java代码中实现分页查询。主要功能可能包括: - 提供SQL构造工具,帮助生成带有分页参数的SQL语句。 - 支持不同的数据库方言,适应...

    基于vue+element的分页组件

    实现这个分页组件的过程大致如下: 1. 创建Vue组件模板,引入Element UI库。 2. 定义组件的`props`,接收来自父组件的总记录数和每页大小等参数。 3. 使用Element UI的`el-pagination`组件,并绑定相应的属性和事件...

Global site tag (gtag.js) - Google Analytics