导航:首页 > 编程语言 > jsp分页控件问题

jsp分页控件问题

发布时间:2023-07-18 14:48:14

1. jsp中的分页显示技术问题

String hsgnpage=request.getParameter("page");这句是说获取你的当前要定位的页数
String fysql="select count(id) as ss from xinwentong where leibie='"+lb+"'";查询新闻通知表的类别等于“lb" 并显示出id 的总数和ss字段
zgs=Integer.parseInt(RS_resultfy.getString("ss"));这是将字符串型“ss”强制转换为整型
if (hsgnpage!=null)如果你所定位的当前页不等于null值
{
curpage=Integer.parseInt(request.getParameter("page"));
}
else
{
curpage=1;
}
如果你所定位的当前页不等于null值,就获取你所定位的当前页并强制转换为整型并赋值给curpage;否则当前页就是第一页
if (curpage==0)
{
curpage=1;
}
如果当前页等于0,那么当前页则赋值为1
if(curpage>zys)
{
curpage=zys;
}如果当前页大于总页数,那当前页就等于总页数
sql="select top "+page_record+" * from xinwentong where leibie='"+lb+"' and id not in (select top "+((curpage-1)*page_record)+" id from xinwentong order by id desc) ";这是两个查询,后一个是子查询,第一个查询是:在新闻通知表中查找类别等于"lb"的前几条记录并显示(top是前几条数据的意思);第二个查询查的是:在新闻通知中表将当前页减1再乘以每页显示的记录数的前几条记录按id字段的降序排列显示所有数据;并且这句代码不是满足一个查询条件就可以,而是要同时满足两个条件才可以查询出正确的结果

这个回答希望能够帮到你!

2. jsp 如何将查询结果实现分页,最好简单易懂…

<%@ page language="java" import="java.util.*,java.sql.ResultSet" contentType="text/html; charset=utf-8"%>
<%@page import="com..TrainingDAO"%>
<%@page import="com.db.DBUtil"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
ResultSet rs = null;
TrainingDAO = new TrainingDAO();

System.out.println("初始访问,加载全部数据");
//查询数据
rs = .find();

//设置每张网页显示三笔记录(每页显示的记录数)
int PageSize=30;

//设置欲显示的页数(初始页)
int ShowPage=1;

//ResultSet的记录笔数(总记录数)
int RowCount=0;

//ResultSet分页后的总数(总页数)
int PageCount=0;
try{
//将指标移至最后一条记录
rs.last();

//获取记录总数

RowCount=rs.getRow();

}catch(Exception ex){
out.print("查询数据库连接失败,请稍后重试。");
}

//计算显示的页数(关键)
PageCount=((RowCount%PageSize)==0?(RowCount/PageSize):(RowCount/PageSize)+1);

String ToPage=request.getParameter("ToPage");

//判断是否取得ToPage参数
if(ToPage!=null)
{
//取得指定显示的分页页数
ShowPage=Integer.parseInt(ToPage);

//下面的语句判断用户输入的页数是否正确
if(ShowPage>=PageCount)
{
ShowPage=PageCount;
}
else if(ShowPage<=0)
{
ShowPage=1;
}
}

%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">

<title>培训查询</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
<style type="text/css">
.inp_text{
width:120px; height:20px; border:1px solid #004000; line-height:20px;
}
/*所有链接样式*/
a:link{font-size:14px;text-decoration:none; color:#333333;}

a:visited{font-size:14px; text-decoration:none; color:#333333;}

a:active{font-size:14px; text-decoration:none; color:#FF0000;}

a:hover{font-size:14px; text-decoration:none; color:#FF0000;}
body{font-size:12px; color:#000000;}
</style>
</head>

<body>
<div align="center">
<h3>培训信息查询</h3>
</div>
<form action="<%=path %>/query.jsp" method="post">
<table width="800" border="0" align="center" cellpadding="0" cellspacing="0" style="font-size:12px;">
<tr>
<td width="80" height="30" align="center">姓名</td>
<td><input type="text" class="inp_text" id="t_name" name="t_name" /></td>
<td width="80" align="center">会员证号</td>
<td><input type="text" class="inp_text" id="t_card" name="t_card" /></td>
<td width="80" align="center">培训名称</td>
<td><input type="text" class="inp_text" style="width:200px;" id="t_pxname" name="t_pxname" /></td>
</tr>
<tr>
<td height="30" align="center">事务所名称</td>
<td><input type="text" class="inp_text" style="width:200px;" id="t_swname" name="t_swname" /></td>
<td align="center">年度</td>
<td>
<select id="t_time" name="t_time">
<option value="">-不限-</option>
<%
Calendar cal = new GregorianCalendar();
int currentYear = cal.get(Calendar.YEAR);
for(int i=0; i<20; i++){
%>
<option value="<%=currentYear %>"><%=currentYear %></option>
<%currentYear--;} %>
</select>
</td>
<td align="left" colspan="2">
<input type="submit" value="查询" />
</td>
</tr>
</table>
</form>
<table width="800" border="1" align="center" cellpadding="4" cellspacing="0" bordercolor="#000000" style="font-size:12px; border-collapse:collapse;" >
<tr>
<th width="40" height="30" align="center">姓名</th>
<th width="30" align="center">性别</th>
<th width="30" align="center">年龄</th>
<th width="65" align="center">职务</th>
<th width="120" align="center">事务所名称</th>
<th width="55" align="center">学历</th>
<th width="98" align="center">会员证号</th>
<th width="30" align="center">是否通过</th>
<th width="115" align="center">培训名称</th>
<th width="40" align="center">培训费</th>
<th width="30" align="center">培训课时</th>
<th width="35" align="center">时间</th>
</tr>
<%

String pname = "";
String gender = "";
String age = "";
String post = "";
String mc = "";
String rank = "";
String member = "";
String isps = "";
String t_Name = "";
String t_money = "";
String t_times = "";
String t_year = "";

//计算欲显示页的第一笔记录位置
rs.absolute((ShowPage-1)*PageSize+1);
//while(rs.next()){
for(int i=1;i<=PageSize;i++){

pname = .formatString(rs.getString("pname"));
gender = .formatString(rs.getString("gender"));
age = .formatString(rs.getString("age"));
post = .formatString(rs.getString("post"));
mc = .formatString(rs.getString("mc"));
rank = .formatString(rs.getString("rank"));
member = .formatString(rs.getString("member"));
if(rs.getString("ispass").equals("1")){
isps = "是";
}else isps ="否";
t_Name = .formatString(rs.getString("t_Name"));
t_money = .formatString(rs.getString("t_money"));
t_times = .formatString(rs.getString("t_times"));
t_year = .formatString(rs.getString("t_year"));
%>
<tr>
<td height="35" align="center"><%=pname %></td>
<td align="center"><%=gender %></td>
<td align="center"><%=age %></td>
<td align="left"><%=post %></td>
<td align="left"><%=mc %></td>
<td align="center"><%=rank %></td>
<td align="center"><%=member %></td>
<td align="center"><%=isps %></td>
<td align="left"><%=t_Name %></td>
<td align="center"><%=t_money %></td>
<td align="center"><%=t_times %></td>
<td align="center"><%=t_year %></td>
</tr>
<%
if(!rs.next())
{
//跳出for循环
break;
}
}
DBUtil.closeConnection();
%>
</table>

<table width="540" border="0" align="center" cellpadding="0" cellspacing="0" style="margin-top:22px;font-size:14px; color:#000000;">
<tr>
<td valign="top">共有<%=RowCount %>条数据,当前在第<font style="font-size:14px;" color="red"><%=ShowPage %></font>页,共<%=PageCount %>页</td>
<td valign="top">
<a href="loadAll.jsp?ToPage=<%=1 %>">第一页</a>
<%
//判断当前是否在第一页,不是第一页,则显示到第一页与下一页的连接
if(ShowPage!=1)
{
%>
<a href="loadAll.jsp?ToPage=<%=ShowPage-1 %>">上一页</a>

<%
}
//判断是否在最后一页,是,则显示到最后一页和下一页
if(ShowPage!=PageCount)
{
%>

<a href="/training/loadAll.jsp?ToPage=<%=ShowPage+1 %>">下一页</a>

<a href="/training/loadAll.jsp?ToPage=<%=PageCount %>">最后一页</a>

<%
}
%>

</td>
<td valign="top">
<form action="loadAll.jsp" method="post" name="form1">
<input type="text" name="ToPage" value="<%=ShowPage %>" onkeyup="this.value=this.value.replace(/\D/g,'')"
onafterpaste="this.value=this.value.replace(/\D/g,'')" style="height:20px;width:30px">页
<a href="javascript:window.document.form1.submit();" style=" font-weight:bold;">GO</a>

</form></td>
</tr>
</table>

</body>
</html>

3. jsp 分页问题 提交搜索内容后分页显示只有第一页 ,第二页就不对了。怎么回事

上个星期也遇到与你一样的问题

其实我们自己考虑不周的原因,平时一般专点击“下一页”,属只是把当前第几页传过去,而查找的内容没有传过去,当时不能显示我们想像的效果

所以:
1、当第一次查找时,记得一定也要把查找的内容传到页面
2、在点击“下一页”里(其它按钮也一样),要把查找的内容也传过去,如果没有,传个null也行;
3、在第二个页里,接收信息时判断一下查找的内容是否为空,从而进行是模糊查询还是列出所有信息,取得数据后,判断查找的内容如果不为空的话,再把查找的内容传到页面

这样就没有问题了

另外,代码写得缺乏可重用性

4. jsp分页代码有问题

还是用javaBean比较好,显示与处理分离,明了。
给你一个,通用的,不过要把其对象放到Session中,切记啦
public class Pagination {
private int currentPage; //当前页
private int totalPages; //总页数
private int pageRows; //每页记录数
private int totalRows; //总记录数
private int pageStartRow; //每页开始记录
private int pageEndRow; //每页结束记录
private boolean hasPreviousPage; //是否有上一页
private boolean hasNextPage; //是否有下一页
private List<Object> totalList; //要分页的数据
//初始化页面信息
public void initPage(List<Object> totalList,int pageRows){
this.totalList = totalList;
this.pageRows = pageRows;
this.totalRows = totalList.size();
this.currentPage = 1;
// 计算总页数
if ((totalRows % pageRows) == 0) {
totalPages = totalRows / pageRows;
if (this.totalRows == 0)
this.totalPages = 1;
} else {
totalPages = totalRows / pageRows + 1;
}
// 默认无上一页
this.hasPreviousPage = false;
// 判断是否有下一页
if (currentPage == totalPages) {
hasNextPage = false;
} else {
hasNextPage = true;
}
// 默认第一页开始的记录数为1
this.pageStartRow = 1;
// 确定第一页结束的记录数
if (totalRows < pageRows) {
this.pageEndRow = totalRows;
} else {
this.pageEndRow = pageRows;
}
}
//获取当前页信息
public List<Object> getCurrentPageList(){
if(currentPage*pageRows<totalRows){
pageEndRow=currentPage*pageRows;
pageStartRow=pageEndRow-pageRows;
}else{
pageEndRow=totalRows;
pageStartRow=pageRows*(totalPages-1);
}
List<Object> pageList=new ArrayList<Object>(pageEndRow-pageStartRow+1);
if(totalRows!=0){
for(int i=pageStartRow;i<pageEndRow;i++){
pageList.add(totalList.get(i));
}
}
return pageList;
}
//获取上一页信息
public List<Object> getPreviousPageList(){
currentPage = currentPage - 1;
if (currentPage < 1){
currentPage = 1;
}
if (currentPage >= totalPages) {
hasNextPage = false;
} else {
hasNextPage = true;
}
if ((currentPage - 1) > 0) {
hasPreviousPage = true;
} else {
hasPreviousPage = false;
}
List<Object> pageList = this.getCurrentPageList();
return pageList;
}
//获取下一页信息
public List<Object> getNextPageList(){
currentPage = currentPage + 1;
if (currentPage > totalPages)
currentPage = totalPages;
if ((currentPage - 1) > 0) {
hasPreviousPage = true;
} else {
hasPreviousPage = false;
}
if (currentPage >= totalPages) {
hasNextPage = false;
} else {
hasNextPage = true;
}
List<Object> pageList = this.getCurrentPageList();
return pageList;
}
//获取指定页信息
public List<Object> getAppointPageList(int currentPage){
this.currentPage = currentPage;
if (currentPage > this.totalPages)
this.currentPage = this.totalPages;
if (currentPage < 1)
this.currentPage = 1;
if (this.currentPage > 1) {
this.hasPreviousPage = true;
} else {
this.hasPreviousPage = false;
}
if (this.currentPage < this.totalPages) {
this.hasNextPage = true;
} else {
this.hasNextPage = false;
}
List<Object> pageList = this.getCurrentPageList();
return pageList;
}
// 返回当前页
public int getCurrentPage() {
return currentPage;
}

// 返回每页记录数
public int getPageRows() {
return pageRows;
}

// 返回当前页开始记录
public int getPageStartRow() {
return pageStartRow;
}

// 返回当前页结束记录
public int getPageEndRow() {
return pageEndRow;
}

// 返回总页数
public int getTotalPages() {
return totalPages;
}

// 返回总记录数
public int getTotalRows() {
return totalRows;
}

// 返回是否有上一页
public boolean isHasPreviousPage() {
return hasPreviousPage;
}

// 返回是否有下一页
public boolean isHasNextPage() {
return hasNextPage;
}
}

5. 在JSP页面中实现分页显示和翻页功能,需要来回传递哪几个参数

页面分页通常有两种展现形式:

  1. 查询出全部结果数据,以集合等形式保存在内存中,每次在内存中读取一页的数据显示。该方法首次加载数据量较大,耗时会很久,而且可能展现出的数据可能包含被修改或删除过的过期或垃圾数据,存储数据也会消耗大量的内存,但首次加载后,分页展现会非常迅速,效果较好。

  2. 每次切页时从数据库中检索当前页所需展现数据,每次查询数较少,总体开销也就减少了,再进行SQL优化,也能达到较高的效率,而且实时检索不易出现数据错误的问题。

使用分页功能,最关键的参数如下:

  1. 请求参数:

    1)当前需要展示的页码,变量,默认从第一页开始,可能是页面上的上下页,通过当前页码±1来计算出来,也可能是页面有页码页表用户通过点击相应数字或是输入框用户手输入的页码;

    2)每页显示的数量,通常是变量,可以从页码提供相应的下拉框供用户选择。若是定义为常量,那就不需要每次传递了;

    3)总数量,根据筛选条件决定,若是筛选条件固定,则只需将此定义为常量,不必作为参数传输,否则则需要根据筛选条件每次查询数据库获取计数。

  2. 返回参数:

    返回需要展示的列表及以上请求参数,通常列表通过Ajax计数实现,那也就不需要返回请求参数了。所展示的列表通常会使用集合类型进行封装或是数据读取成json格式由前台进行解析。

6. 看看JSP中怎样实现分页显示

分页依据:
select 字段列表 from 表名 limit m,n;
m: 表示起始记录,并且从0开始
n: 查询记录的个数,每页记录数
分页信息
共多少页
有没有上一页
有没有下一页
当前页
注:分页信息类Page
注2:创建分页信息辅助类PageUtil
public static Page createPage(int everyPage,int totalCount,int currentPage)
everyPage: 程序员定
totalCount: 总记录数,查询数据库表记录 select count(*) from 表名
currentPage: 从默认第一页开始,下一页= 当前页+1 上一页 = 当前页-1
分页数据集合List
依据查询语句获得集合: select 字段列表 from 表名 limit m,n;
m: beginIndex
n: everyPage
具体实现:::
UserBiz:
//分页
public int getCont();
public List<User> findByPage(Page page);
123

UserBizImpl:
@Override
public int getCont() {
String sql = "select count(*) as count from user";
CountUtil count = (CountUtil) u.get(sql, CountUtil.class);
return count.getCount();
}

@Override
public List<User> findByPage(Page page) {
String sql = "select * from user limit "+page.getBeginIndex()+", "+page.getEveryPage();
return u.query(sql, User.class);
}

servlet::UserServlet
int everyPage = 5;//每页记录数
int totalCount = ubiz.getCont();//获取总记录数
//点击链接重新获取当前页
String scurrentPage = request.getParameter("currentPage");
int currentPage = 1; //当前页,默认1
if(scurrentPage == null){
currentPage = 1;//从第一页开始访问
}else{
currentPage = Integer.parseInt(scurrentPage);
}
//分页信息
Page page = PageUtil.createPage(everyPage, totalCount, currentPage);
//分页数据信息
List<User> list = ubiz.findByPage(page);

request.setAttribute("page", page);
request.setAttribute("list", list);
//转发到userlist.jsp
request.getRequestDispatcher("/back/manager/userlist.jsp").forward(request, response);

userlist.jsp中的分页表现
<table width="461" height="24" border="1" cellpadding="0" cellspacing="0">
<tr>
<td width="199">当前为第${page.currentPage}页,共${page.totalPage}页</td>
<td width="256">
<c:choose>
<c:when test="${page.hasPrePage}">
<a href="<%=path %>/user.do?method=list¤tPage=1">首页</a> |
<a href="<%=path %>/user.do?method=list¤tPage=${page.currentPage -1 }">上一页</a>
</c:when>
<c:otherwise>
首页 | 上一页
</c:otherwise>
</c:choose>

<c:choose>
<c:when test="${page.hasNextPage}">
<a href="<%=path %>/user.do?method=list¤tPage=${page.currentPage + 1 }">下一页</a> |
<a href="<%=path %>/user.do?method=list¤tPage=${page.totalPage }">尾页</a>
</c:when>
<c:otherwise>
下一页 | 尾页
</c:otherwise>
</c:choose>

</td>
</tr>
</table>

附::::page类(分页信息实体类)
public class Page {
private int everyPage; //每页显示记录数
private int totalCount; //总记录数
private int totalPage; //总页数
private int currentPage; //当前页
private int beginIndex; //查询起始点
private boolean hasPrePage; //是否有上一页
private boolean hasNextPage; //是否有下一页
public Page(int everyPage, int totalCount, int totalPage,
int currentPage,int beginIndex, boolean hasPrePage,
boolean hasNextPage) { //自定义构造方法
this.everyPage = everyPage;
this.totalCount = totalCount;
this.totalPage = totalPage;
this.currentPage = currentPage;
this.beginIndex = beginIndex;
this.hasPrePage = hasPrePage;
this.hasNextPage = hasNextPage;
}
///////get,set方法略
}

附:pageutil 分页信息辅助类
public class PageUtil {
//创建Page对象
public static Page createPage(int everyPage,int totalCount,int currentPage) {//创建分页信息对象
everyPage = getEveryPage(everyPage);
currentPage = getCurrentPage(currentPage);
int totalPage = getTotalPage(everyPage, totalCount);
int beginIndex = getBeginIndex(everyPage, currentPage);
boolean hasPrePage = getHasPrePage(currentPage);
boolean hasNextPage = getHasNextPage(totalPage, currentPage);
return new Page(everyPage, totalCount, totalPage, currentPage,
beginIndex, hasPrePage, hasNextPage);
}
// 以下方法辅助创建Page对象
public static int getEveryPage(int everyPage) { //获得每页显示记录数
return everyPage == 0 ? 10 : everyPage;
}
public static int getCurrentPage(int currentPage) { //获得当前页
return currentPage == 0 ? 1 : currentPage;
}
public static int getTotalPage(int everyPage,int totalCount) {//获得总页数
int totalPage = 0;
if(totalCount != 0 &&totalCount % everyPage == 0) {
totalPage = totalCount / everyPage;
} else {
totalPage = totalCount / everyPage + 1;
}
return totalPage;
}
public static int getBeginIndex(int everyPage,int currentPage) {//获得起始位置
return (currentPage - 1) * everyPage;
}
public static boolean getHasPrePage(int currentPage) {//获得是否有上一页
return currentPage == 1 ? false : true;
}
public static boolean getHasNextPage(int totalPage, int currentPage) { //获得是否有上一页
return currentPage == totalPage || totalPage == 0 ? false : true;
}
}

7. 求教jsp分页显示的问题,如何循环并分页取得参数

这个是一个可用的分页代码,如何调用就不说了吧,但是在用之前要先指明ResultSet的值

import java.sql.ResultSet;
public class rsFenYe {
ResultSet rs=null; //要分页处理的记录数
int currentPage=1; //当前页码
int pageSize=10; //每页记录的条数,默认为10
/**
* 得到分页字串,并把记录指针移到当前页的第一条记录的前面的位置
* 输入:返回的JSP页面,refName 数组为超链接中继 currentPage 之后的参数名,refValue为对应值
* 输出:字符串“共2页,当前第1页 下一页 末页”
*/
public String earn_fenye_string(String returnJSP){
String returnString=new String("");
if(rs==null){
return returnString;
}
int pageCount=0; //总页数
int rowCount=0; //rs的总记录条数
if(pageSize<=0){ //每页记录条数不正确
return returnString;
}

try {
//------得到记录总条数--------
rs.last();
rowCount=rs.getRow();
rs.beforeFirst();

//------记录指针移位----------
int RecordPosition=(currentPage-1)*pageSize;
if(RecordPosition==0){
rs.beforeFirst();
}else{
rs.absolute(RecordPosition);
}
}catch(Exception e){
System.out.println(e);
return returnString;
}

//-------得到总页数-----
if(rowCount%pageSize==0){
pageCount=rowCount/pageSize;
}else{
pageCount=rowCount/pageSize+1;
}

//-------得到返回字符串--------
returnString="共"+pageCount+"页,当前第"+currentPage+"页";
if(currentPage!=1 && pageCount!=0){ //不是首页且总页数不为0
returnString=returnString+"<a href='"+returnJSP+"?currentPage=1";
returnString=returnString+"'>首页</a>";

returnString=returnString+"<a href='"+returnJSP+"?currentPage="+(currentPage-1);
returnString=returnString+"'>上一页</a>";
}

if(currentPage!=pageCount&&pageCount!=0){ //不是末页且总页数不等于0
returnString=returnString+"<a href='"+returnJSP+"?currentPage="+(currentPage+1);
returnString=returnString+"'>下一页</a>";

returnString=returnString+"<a href='"+returnJSP+"?currentPage="+pageCount;
returnString=returnString+"'>末页</a>";
}

return returnString;
}

public ResultSet getRs() {
return rs;
}

public void setRs(ResultSet rs) {
this.rs = rs;
}

public int getCurrentPage() {
return currentPage;
}

public void setCurrentPage(int currentPage) {
this.currentPage = currentPage;
}

public int getPageSize() {
return pageSize;
}
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
}

8. JSP页面分页怎么做

分页须知知识点:
(1)JDBC2.0的可滚动结果集。
(2)HTTP GET请求。
一、可滚动结果集
Connection con = DriverManager.getConnection();
PreparedStatement stmt = con.prepareStatement(sql,ResultSet.TYPE_FORWARD_ONLY,ResultSet.CONCUR_READ_ONLY);
ResultSet rs = stmt.executeQuery();
常用方法:
(1)rs.absolute(n); 可以将指针跳到第n行。
(2)rs.relative(n); 可以将指针相对向下或向上n行。
(3)rs.first();
(4)rs.last();
(5)int curRow = rs.getRow(); 指针指向的当前行
二、功能实现分解
1.计算结果的个数
rs.last();
int size = rs.getRow();
即可得到结果的个数。

2.得到需要分几页
如果一页能够放5条记录,则
int pageCount = (size%5==0)?(size/5):(size/5+1);
即可获得需要分几页。

3.控制一页中规定显示记录个数
如果一页能显示5条记录,可以通过使用count进行计数。
int count = 0;
do{
if(count>=5) break;
.....
count++;
}while(rs.next());
通过break语句,能够使其显示到超过规定条目就跳出。

4.如何知道当前是第几页
通过HTTP get的特点,在地址栏中标明当前地址,如http://.......?curPage=1 表示现在是第一页。
String tmp = request.getParameter("curPage");
if(tmp==null){
tmp="1";
}
curPage = Integer.parseInt(tmp);
可以获得当前页。
注意:
rs.absolute(1);表示指向第一条记录;
不存在rs.absolute(0);
rs.absolute((curPage-1)*PAGESIZE+1); 把结果集指针调整到当前页应该显示的记录的开始.
比如如果一页显示5条记录,当前页是第二页,则需要把指针调整到6,当前页是第三页,则需要把指针调整为11.
5.点击首页、上一页、下一页、尾页的行为
<a href="multipage.jsp?curPage=<%curPage+1%>" >下一页</a>
<a href="multipage.jsp?curPage=<%curPage-1%>" >上一页</a>
<a href="multipage.jsp?curPage=<%pageCount%>" >尾页</a>
<a href="multipage.jsp?curPage=1" >首页</a>
6.为了保存当前页位置,则需要把当前页位置设为全局变量。
<%@ page contentType="text/html" pageEncoding="GB2312" language="java"%>
<%@ page import="java.sql.*"%>
<html>
<head>
<title>hello</title>
</head>
<body>
<table border="1" spacing="2">
<%!
public static final String DRIVER = "com.mysql.jdbc.Driver";
public static final String USER = "root";
public static final String PASS = "12345";
public static final String URL = "jdbc:mysql://localhost:3306/MLDN";
public static final int PAGESIZE = 5;
int pageCount;
int curPage = 1;
%>
<%
//一页放5个
String user = null;
String pass = null;
try{
Class.forName(DRIVER);
Connection con = DriverManager.getConnection(URL,USER,PASS);
String sql = "SELECT empno,ename,job,hiredate,sal,comm FROM emp";
PreparedStatement stat = con.prepareStatement(sql,ResultSet.TYPE_FORWARD_ONLY,ResultSet.CONCUR_READ_ONLY);
ResultSet rs = stat.executeQuery();
rs.last();
int size = rs.getRow();
pageCount = (size%PAGESIZE==0)?(size/PAGESIZE):(size/PAGESIZE+1);
String tmp = request.getParameter("curPage");
if(tmp==null){
tmp="1";
}
curPage = Integer.parseInt(tmp);
if(curPage>=pageCount) curPage = pageCount;
boolean flag = rs.absolute((curPage-1)*PAGESIZE+1);
out.println(curPage);
int count = 0;

do{
if(count>=PAGESIZE)break;
int empno = rs.getInt(1);
String ename = rs.getString(2);
String job = rs.getString(3);
Date hiredate = rs.getDate(4);
float sal = rs.getFloat(5);
int comm = rs.getInt(6);
count++;
%>
<tr>
<td><%=empno%></td>
<td><%=ename%></td>
<td><%=job%></td>
<td><%=hiredate%></td>
<td><%=sal%></td>
<td><%=comm%></td>
</tr>
<%
}while(rs.next());
con.close();
}
catch(Exception e){

}
%>
</table>
<a href = "multipage.jsp?curPage=1" >首页</a>
<a href = "multipage.jsp?curPage=<%=curPage-1%>" >上一页</a>
<a href = "multipage.jsp?curPage=<%=curPage+1%>" >下一页</a>
<a href = "multipage.jsp?curPage=<%=pageCount%>" >尾页</a>
第<%=curPage%>页/共<%=pageCount%>页
</body>
</html>

阅读全文

与jsp分页控件问题相关的资料

热点内容
组织文件内容是什么 浏览:183
0基础如何学习智能编程 浏览:366
java程序员全攻略下载 浏览:715
网络逆向教程 浏览:135
iso文件如何重装系统 浏览:750
ghost镜像文件路径如何恢复 浏览:832
搭建网站需要多少钱啊 浏览:599
编程猫怎么设置背景亮度 浏览:177
qq文件破损 浏览:414
javapoi配置 浏览:608
编程怎么写数据图案同步 浏览:308
海康监控录像回放丢数据怎么回事 浏览:155
in后缀是什么文件 浏览:142
linuxusb抓包工具 浏览:808
类似美团的app还有什么 浏览:974
asp显示数据库 浏览:142
delphi逆向教程 浏览:63
数据库怎么把表名称和字段导出 浏览:910
桌面上文件变白删不掉 浏览:968
更改项目的jdk版本 浏览:612

友情链接