jsp的分页查询_weixin_30621959的博客-程序员宝宝

技术标签: ViewUI  java  javascript  

jsp页面步骤

1.定义页面位置input类型为hidden的隐藏域名称为pageIndex初始值为1
2.定义页面长度
3.通过请求获得参数的方法传入pageIndex得到pageIndex字符串
4.定义当前页面为1
5.进行页面位置的非空判断 (1)为空则值为1 (2)否则值为页面位置的包装类
6.定义总新闻数,通过实现类的getNewsCount()获得
7.创建分页类的对象
8.设置属性页面长度,当前页面,总新闻数,再通过分页对象的自定义方法得到总页数
9.进行判断:当前页为1以下时,或者大于总页数
10.定义总页数input类型为hidden的隐藏域名称为totalpagecount值为totalpagecont
11.通过c标签导入页面,同时用c标签的name,value属性传递三个参数,总新闻数,当前页码,总页数

 

接口

//获取新闻信息总数
public int getNewsCount();

//得到分页列表
public List<News> getPageNewsList(int pageNum,int pageSize);

实现类

@Override
public int getNewsCount() {
// TODO Auto-generated method stub
int count=0;
String sql="select count(*)as count from news_detail";
Object[] obj={};
if(this.getConnection()){
ResultSet rs=this.executeSQL(sql, obj);
try {
if(rs.next()){
count=rs.getInt("count");

}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally {
//释放资源
this.closeResource();
}
}
return count;

}

@Override
public List<News> getPageNewsList(int pageNum, int pageSize) {
// TODO Auto-generated method stub
List<News> newsList=new ArrayList<News>();
String sql="SELECT id,title,author,createDate FROM news_detail ORDER BY id ASC LIMIT ?,?";
pageNum=(pageNum-1)*pageSize;
Object[] params={pageNum,pageSize};
if(this.getConnection()){
ResultSet rs=executeSQL(sql, params);
try {
while(rs.next()){
News news=new News();
news.setId(rs.getInt("id"));
news.setTitle(rs.getString("title"));
news.setAuthor(rs.getString("author"));
news.setCreateDate(rs.getTimestamp("createDate"));
newsList.add(news);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally {
//释放资源
this.closeResource();
}
}
return newsList;
}

 

对象类

//总页数
private int totalpageCount=1;
//页面容量
private int pageSize=0;

//总记录数
private int totalCount=0;

//当前页码
private int currentPageNo=1;


public int getTotalpageCount() {
return totalpageCount;
}

public void setTotalpageCount(int totalpageCount) {
this.totalpageCount = totalpageCount;
}

public int getTotalCount() {
return totalCount;
}

public void setTotalCount(int totalCount) {
if(totalCount>0){
this.totalCount = totalCount;
this.setTotalPageCountByRs();
}
}

public int getCurrentPageNo() {
return currentPageNo;
}

public void setCurrentPageNo(int currentPageNo) {
if(currentPageNo>0)
this.currentPageNo = currentPageNo;
}

public int getPageSize() {
return pageSize;
}

public void setPageSize(int pageSize) {
if(pageSize>0)
this.pageSize = pageSize;
}

public void setTotalPageCountByRs(){
if(this.totalCount%this.pageSize==0){
this.totalpageCount=this.totalCount/this.pageSize;
}else if(this.totalCount%this.pageSize>0){
this.totalpageCount=this.totalCount/this.pageSize+1;
}else{
this.totalpageCount=0;
}
}

jsp页面

<%@page import="com.pb.news.entity.News"%>
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@page import="com.pb.news.util.PageSupport"%>
<%@include file="../../common/common.jsp" %>
<script type="text/javascript">

function addNews(){
window.location="newsDetailCreateSimple.jsp";
}
function page_nav(frm,num){
frm.pageIndex.value=num;
frm.submit();
}
function jump_to(frm,num){
var regexp=/^[1-9]\d*$/;
var totalpagecount= document.getElementById("totalpagecount");
if(!regexp.test(num)){
alert("输入正整数");
return false;
}else if(num>totalpagecount){
alert("超过总页数");
return false;
}else{
page_nav(frm,num);
}

}

</script>

<input type="hidden" name="pageIndex" value="1"/>

<%

//页面容量
int pageSize=5;

//当前页码
String pageIndex=request.getParameter("pageIndex");
int currentPageNo=1;
if(pageIndex==null){
currentPageNo=1;
}else{

try{
currentPageNo=Integer.parseInt(pageIndex);
}catch(NumberFormatException e){
response.sendRedirect("error.jsp");
}
}



//总记录数
int totalCount=newsService.getNewsCount();

//总页数
PageSupport pageSupport=new PageSupport();
pageSupport.setPageSize(pageSize);
pageSupport.setCurrentPageNo(currentPageNo);
pageSupport.setTotalCount(totalCount);
int totalpagecount=pageSupport.getTotalpageCount();
if(currentPageNo<1){
currentPageNo=1;
}
if(currentPageNo>totalpagecount){
currentPageNo=totalpagecount;
}



List<News> newsList=newsService.getPageNewsList(currentPageNo,pageSize);
int i=0;
for(News news:newsList){
i++;
%>
<tbody>
<input type="hidden" id="totalpagecount" name="totalpagecount" value=<%=totalpagecount %>/>
<tr <%if(i%2!=0){%>class="admin-list-td-h2"<%} %>>
<td><a href='adminNewsView.jsp?id=<%=news.getId() %>'><%=news.getTitle() %></a></td>
<td><%=news.getAuthor()%></td>
<td><%=news.getCreateDate() %></td>
<td><a href='adminNewsCreate.jsp?id=<%=news.getId() %>'>修改</a>
<a href="javascript:if(confirm('确认是否删除此新闻?')) location='adminNewsDel.jsp?id=<%=news.getId() %>'">删除</a>
</td>
</tr>
</tbody>
<%
}
%>

</table>
<div class="page-bar">
<ul class="page-num-ul clearfix">
<li>共<%=totalCount %></>条记录&nbsp;&nbsp; <%=currentPageNo%>/<%=totalpagecount %>页</li>
<%if(currentPageNo>1){%>
<a href="javascript:page_nav(document.forms[0],1)">首页</a>
<a href="javascript:page_nav(document.forms[0],<%=currentPageNo-1%>)">上一页</a>
<%}if(currentPageNo<totalpagecount){ %>
<a href="javascript:page_nav(document.forms[0],<%=currentPageNo+1%>)">下一页</a>
<a href="javascript:page_nav(document.forms[0],<%=totalpagecount%>)">最后一页</a>&nbsp;&nbsp;
<%} %>
</ul>
<span class="page-go-form"><label>跳转至</label>
<input type="text" name="inputPage" id="inputPage" class="page-key" />页
<button type="button" class="page-btn" onClick='jump_to(document.forms[0],document.getElementById("inputPage").value)'>GO</button>
</span>
</div>
</div>

 

转载于:https://www.cnblogs.com/m97i/p/6936095.html

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_30621959/article/details/94859768

智能推荐

org.springframework.web.util.NestedServletException: Request processing failed; nested exception is ..._weixin_30257433的博客-程序员宝宝

之前做的项目是resteasy的上传,代码没有问题,断点都不进来呢。我以为可以直接移植到SpringMVC,但是SpringMVC不支持MultipartFormDataInput ,用MultipartFile就可以了。老的无法兼容新的。正确代码如下@RequestMapping(value = "/importExcelForEduQuestion",produces = ...

Web_PHP_Curl浅说;_cyb_23的博客-程序员宝宝

<?php/** * curl会话 * @author 2WR3_cyb */class CurlClass { /** * Curl使用示例 * @param string $url 请求路径,如'http://x.x.x'; * @param array $fields 请求参数,如array('var' => 'value'), or can

黑马程序员--面对对象3_捌年的博客-程序员宝宝

------- android培训、java培训、期待与您交流! ----------一、继承定义:  在定义和实现一个类的时候,可以在一个已经存在的类的基础之上来进行,把这个已经存在的类所定义的内容作为自己的内容,并可以加入若干新的内容,或修改原来的方法使之更适合特殊的需要,这就是继承。继承是子类自动共享父类数据和方法的机制,这是类之间的一种关系,提高了软件的可重用性和可

基础的重要性(程序员之路)_张冰庭的博客-程序员宝宝

学习编程有几年了,感觉走了不少弯路,而不少的学弟学妹又在重蹈我当初的覆辙,不免有些痛心。最近在网上也看了许多前辈们的经验建议,再结合自己的学习经历在这里谈谈基础的重要性,希望帮助大家少走些弯路。    什么是基础呢?就是要把我们大学所学的离散数学,算法与数据结构,操作系统,计算机体系结构,编译原理等课程学好,对计算机的体系,CPU本身,操作系统内核,系统平台,面向对象编程,程序的性能等要有

0003C语言--数据类型及运算符_北冥有鱼zsp的博客-程序员宝宝

本文主要讲解的知识点是进制数,数据类型及其转换,运算符。1.进制数及其转换进制是一种计数机制,它可以使用有限的数字符号代表所有的数值。对于任何一种进制——X 进制, 就表示某一位置上的数运算时逢 X 进一位。对于计算机系统来说,常见的进制数有二进制,八进制,十进制及十六进制。(1)二进制对于绝大多数计算机系统来说,数据都是通过二进制的形式存在的。二进制是一种“逢二进一”的机制, 它...

随便推点

Redis zSet命令_qq_19557947的博客-程序员宝宝

zAdd增加一个或多个元素,如果该元素已经存在,更新它的socre值虽然有序集合有序,但它也是集合,不能重复元素,添加重复元素只会更新原有元素的score值$redis->zAdd('key', 1, 'val1');$redis->zAdd('key', 0, 'val0');$redis->zAdd('key', 5, 'val5');$redis->zRange('

3D图形学(6):正向渲染和延迟渲染_鹅厂程序小哥的博客-程序员宝宝

内容引自《Real Time Rendering 3rd》Forward Rendering(正向渲染)发生在渲染管线的顶点处理阶段,会计算所有的顶点的光照。全平台支持。规则一:最亮的几个光源会被实现为像素光照 规则二:然后最多4个光源会被实现为顶点光照 规则三:剩下的光源会被实现为效率较高的球面调谐光照(Spherical Hamanic),这是一种模拟光照规则一补充说明...

(原创)咱们公司遇到一个想开发和抖音一样的app的客户?_qq18723817197的博客-程序员宝宝

如果客户说想开发一款和抖音一模一样的app,结果会?——链环科技

我和你们不同--和谐就是和而不同--就是多样性的统一_LLKJDLLKJD的博客-程序员宝宝

     软件开发我从来没有研究过,我是寻求一个帮助偶然来到这个空间,希望哪位朋友能够帮助我编写一个这样简单的软件---将标志某商品的品名、产地生产商、经销商、规格型号、产品编号、特殊字符的信息编写成为另外一组可以自由设定的信息,当输入其中某一段信息后,就可以自动导出这些自由设定的信息,就好象户口管理,输入名字,就可以导出身份证号码一样;用途是:好查找库房放置的商品位置。    我的手机号码是