JSP页面分页显示数据
效果如上图所示!最多显示10条;
完整jsp和后台代码如下:
<%@ page contentType="text/html;charset=UTF-8" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ taglib prefix="tags" tagdir="/WEB-INF/tags" %>
<%@ taglib prefix="shiro" uri="http://shiro.apache.org/tags" %>
<c:set var="ctx" value="${pageContext.request.contextPath}"/>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<script src="${ctx}/js/common/common.js" type="text/javascript"></script>
<script src="${ctx}/js/page/page.js" type="text/javascript"></script>
<script type="text/javascript"> function firstpage(){
$("#pageIndex").val(${page.startPage});
$("#form1").submit();
}
function lastpage(){
$("#pageIndex").val(${page.currPage-1});
$("#form1").submit();
}
function currpage(){
$("#pageIndex").val(${page.currPage});
$("#form1").submit();
}
function gotoPage(i){
var pageNo=$("#gotoPage"+i+"").text();
$("#pageIndex").val(pageNo);
$("#form1").submit();
}
function nextpage(){
$("#pageIndex").val(${page.currPage+1});
$("#form1").submit();
}
function endpage(){
$("#pageIndex").val(${page.totalPage});
$("#form1").submit();
} //多文本省略号显示
$(function(){
$(".company").each(function(){
var maxwidth=15;
if($(this).text().length>maxwidth){
$(this).text($(this).text().substring(0,maxwidth));
$(this).html($(this).html()+'…');
}
});
})
</script>
</head>
<body class="bglightgray">
<div class="div-wrapper" >
<div class="div-wrapper-con" >
<form action="#" method="GET" id="form1" class="fl">
<input type="hidden" name="currPage" id="pageIndex" value="1" />
<%-- <input type="hidden" name="page" id="page" value="${userCPs.number+1}"/> --%>
<input type="hidden" name="type" id="type" value="${type}"/>
<input type="hidden" name="m" id="m" value="${m}"/>
<input type="hidden" name="sortType" id="sortType" value="${sortType}"/>
<input type="hidden" name="is_search" value="false" id="is_search"/>
<div class="tbar clearfix">
<span class="fl">请输入cp名称</span>
<input name="company" onkeyup="this.value=this.value.replace(/^\s+|\s+$/g,'')" value="${company}" ty pe="text" class="fl inptext" />
<span class="fl">请输入排行个数</span>
<input id="size" name="page.size" min="1" max="19" type="number" class="fl inptext" />
<button type="submit" id="sub_control" class="fl inpbtns">查询</button>
</div>
</form>
<table class="table" width="100%">
<thead>
<tr>
<th width="10%">名次序号</th>
<th width="10%">cp名称</th>
<c:if test="${type==1 }">
<th width="10%">总点击量</th>
</c:if>
<c:if test="${type==2 }">
<th width="10%">总付费量(/元)</th>
</c:if>
<c:if test="${type==3}">
<th width="10%">总收藏量</th>
</c:if>
</tr>
</thead>
<tbody>
<c:forEach items="${allUser}" var="userCP" varStatus="status">
<tr>
<td>${(currPage-1)*20+status.index+1}</td>
<td class="company" title="${userCP[1]}">${userCP[1]}</td>
<c:if test="${type==1||type==3 }">
<td>${userCP[2]}</td>
</c:if>
<c:if test="${type==2 }">
<td><fmt:formatNumber type="number" value="${userCP[2]}" pattern="#0.00" m axFractionDigits="2" /></td>
</c:if>
</tr>
</c:forEach>
</tbody>
</table>
<div class="pagesdiv clearfix" >
<div id="page" class="pagination">
<ul>
<c:choose>
<c:when test="${page.currPage>1}">
<li><a href="javascript:firstpage()"><<</a></li>
</c:when>
<c:otherwise> <li><a href="#"><<</a></li>
</c:otherwise>
</c:choose>
<c:choose>
<c:when test="${page.currPage>1}">
<li> <a href="javascript:lastpage()"><</a> </li>
</c:when>
<c:otherwise><li><a href="#"><</a></li>
</c:otherwise>
</c:choose> <%--计算begin和end --%>
<c:choose>
<%--如果总页数不足10,那么就把所有的页都显示出来 --%>
<c:when test="${requestScope.countPage<=10}">
<c:set var="begin" value="1" />
<c:set var="end" value="${requestScope.countPage}" />
</c:when>
<c:otherwise>
<%--如果总页数大于10,通过公式计算出begin和end --%>
<c:set var="begin" value="${requestScope.currentPage-5}" />
<c:set var="end" value="${requestScope.currentPage+4}" />
<%--头溢出 --%>
<c:if test="${begin<1}">
<c:set var="begin" value="1"></c:set>
<c:set var="end" value="10"></c:set>
</c:if>
<%--尾溢出 --%>
<c:if test="${end>requestScope.countPage}">
<c:set var="begin" value="${requestScope.countPage - 9}"></c:set>
<c:set var="end" value="${requestScope.countPage}"></c:set>
</c:if>
</c:otherwise>
</c:choose>
<%--循环显示页码列表 --%>
<c:forEach var="i" begin="${begin}" end="${end}">
<c:choose>
<c:when test="${i == page.currPage}">
<li class="active"><a id="current" href="javascript:currpage()" >${i}</a></li>
</c:when>
<c:otherwise>
<li><a href="javascript:gotoPage(${i})" id="gotoPage${i}">${i}</a></li>
</c:otherwise>
</c:choose>
</c:forEach>
<c:choose>
<c:when test="${page.currPage + 1<=page.totalPage }">
<li><a href="javascript:nextpage()">></a></li>
</c:when>
<c:otherwise> <li><a href="#">></a></li>
</c:otherwise>
</c:choose>
<c:choose>
<c:when test="${page.currPage + 1<=page.totalPage }">
<li> <a href="javascript:endpage()">>></a> </li>
</c:when>
<c:otherwise><li><a href="#">>></a></li>
</c:otherwise>
</c:choose>
</ul>
</div
</div>
</div>
</div> <!-- <script type="text/javascript" src="js/jquery-1.11.3.min.js" ></script> -->
<script>
$(function(){
$("#sub_control").click(function(){
$("#is_search").attr("value",true);
var data = $("#is_search").val();
$("#form_sub").click();
});
$(".table tbody tr").each(function(i){
if(i%2==0)
{
$(this).addClass("bg-white");
}else{
$(this).addClass("bg-grey");
}
});
})
</script>
</body>
</html>
//java代码分页工具类;
package cn.enetic.wodm.entity; import java.util.HashMap;
import java.util.Map;
/**
* 分页
* @author Administrator
*
*/
public class PageUtil {
private int totalNum;// 总记录数;
private int totalPage;// 总页数
private int currPage;// 当前页码;
private int pageNum = 20;// 默认页面记录数;
private int startNum = 1;// 开始数;
private int endNum;// 结束数目;
private int startPage;// 开始页;
private int endPage;// 结束页; public PageUtil() { }
public PageUtil(int pageNum,String key,Object value) {
params.put(key, value);
this.pageNum = pageNum;
}
public PageUtil(int pageNum){
this.pageNum = pageNum;
}
private Map<String, Object> params=new HashMap<String, Object>();// 鍙傛暟鍒楄�? public void setTotalPage(int totalNum) {
int num = totalNum % pageNum;
if (num == 0) {
totalPage = totalNum / pageNum;
} else {
totalPage = totalNum / pageNum + 1;
}
} public void initPage(int totalNum) {
this.totalNum = totalNum;
setTotalPage(totalNum);// 璁剧疆鎬婚�?闈㈡�?
startPage = 1;
endPage = totalPage;
if(currPage<=0){
this.currPage=1;
}else if(currPage>=totalPage){
this.currPage=totalPage;
}
startNum = pageNum * currPage - pageNum ;
if(startNum<=0){startNum=0;}
endNum = pageNum * currPage;
if (endNum > totalNum) {
endNum = totalNum;
} } public int getTotalNum() {
return totalNum;
} public void setTotalNum(int totalNum) {
this.totalNum = totalNum;
} public int getCurrPage() {
return currPage;
} public void setCurrPage(int pageNumber) {
if("".equals(pageNumber)){
this.currPage=1;
}else{
this.currPage=pageNumber;
}
} public int getPageNum() {
return pageNum;
} public void setPageNum(int pageNum) {
this.pageNum = pageNum;
} public int getStartNum() {
return startNum;
} public void setStartNum(int startNum) {
this.startNum = startNum;
} public int getEndNum() {
return endNum;
} public void setEndNum(int endNum) {
this.endNum = endNum;
} public int getStartPage() {
return startPage;
} public void setStartPage(int startPage) {
this.startPage = startPage;
} public int getEndPage() {
return endPage;
} public void setEndPage(int endPage) {
this.endPage = endPage;
} public Map<String, Object> getParams() {
return params;
} public void setParams(Map<String, Object> params) {
this.params = params;
} public int getTotalPage() {
return totalPage;
}
}
//control层代码; //如果点击了查询按钮,页数清空
// 分页总数;
int totalnumber=0;
if(("".equals(company)||company==null)&&pageSize!=20){
totalnumber=pageSize;
currPage = 1;
}else{
totalnumber = this.userCPService.getTotalnumber(company);
} PageUtil page = new PageUtil(20);
page.setCurrPage(currPage);
page.initPage(totalnumber);
int startNum = page.getStartNum();
// 获取审核通过的usercp和对应的点击浏览数;
List<Object[]> allUser = this.userCPService.getAllPassUserCPsAndClicks(startNum,pageSize, company); model.addAttribute("allUser", allUser);
model.addAttribute("page", page);
model.addAttribute("company", company);
model.addAttribute("type", type);
model.addAttribute("sortType", sortType);
model.addAttribute("PAGE_SIZE", "20");
model.addAttribute("currPage", currPage);
model.addAttribute("navigateColor", navigateColor);
model.addAttribute("m", m);
return "RankStatistics/cpRankList";
}
JSP页面分页显示数据的更多相关文章
- 转:JSP 分页显示数据 (Oracle)
JSP 分页显示数据 (Oracle) 标签: Oracle分页JSP分页 2013-11-19 20:40 3598人阅读 评论(1) 收藏 举报 分类: Web(11) 版权声明:本文为博主原 ...
- datagrid数据表格当数据为0的时候页面不显示数据
如下图: datagrid数据表格当数据为0的时候页面不显示数据,为空的表格数据全是0,但是页面无法显示 传递的json数据也是没问题的: 所以实在想不通,为什么easyUI datagrid 不显示 ...
- JSP 分页显示数据 (Oracle)
要实现分页,首先我们要做的就是如何来编写SQL语句,网上也有很多,大家可以搜一下.在这里,我们使用一种比较常用的方式来编写SQL语句.代码如下: ----分页显示 select * from (sel ...
- 如何在JSP页面里面显示xml格式的数据
正常情况下,在jsp页面里的标签里写xml格式的数据,在浏览器里面的页面里显示出来的是乱码. 为什么会显示乱码呢?原来xml标签在jsp里会被解析为浏览器对象,因为xml最开始被设计出来是 为了写网页 ...
- springMVC笔记:jsp页面获取后台数据记录列表
1.读取数据库中的记录List<HashMap<String,String>> attributes; 2.Controller构造Model如下: @RequestMappi ...
- ASP.NET(四):ASP.net实现假分页显示数据
导读:在做数据查询的时候,有的时候查询到的数据有很多.通常呢,我们一般都是去拖动右侧边的滚动条.但是,有了分页后,我们就可以不必是使用滚动条,而直接通过分页查看我们想要的数据.在分页的过程中,有分为真 ...
- 多页的TIFF图片在aspx页面分页显示
一.逻辑实现:将数据库中的二进制TIFF图片读出并分页显示在页面上. 1.显示界面 public FrameDimension MyGuid; ; ; public static MemoryStre ...
- repeater 分页显示数据
表名:ChinaStates 控件:Repeater 查询代码DA: public class ChinaStatesDA { private DataClassesDataContext Conte ...
- js 将很长的内容进行页面分页显示
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
随机推荐
- vue 轮播图插件 vue-awesome-swiper
1.npm安装 npm install vue-awesome-swiper --save 2.vue 引入 //在main.js 中全局引入 import VueAwesomeSwiper from ...
- Confluence 6 MBeans
你可以使用下面的 Confluence MBeans 来实时查看你 Confluence 实例运行的实时信息. CacheStatistics 这个 MBean 显示了 Confluence 有关的 ...
- Confluence 6 从一个 XML 备份中导入一个空间
有下面 2 中方法可以导入一个空间——通过上传一个文件,或者从你 Confluence 服务器上的一个目录中导入.上传文件仅仅是针对一个小站点的情况.为了取得最好的导入结果,我们推荐你从服务器上的目录 ...
- 关于Sublime text 3如何编辑less并转(编译)成css文件
今天开始学习使用less这个强大方便的前端工具,本来是考虑用koala(专门编辑less的软件)来使用less的,但是发现sublime编辑器也可以实现对less的编译及高亮显示代码,这样既能少用一个 ...
- nginx官方模块之http_sub_status_module
作用 显示nginx的连接状态,nginx客户端状态 配置语法 配置
- 《剑指offer》 包含min函数的栈
本题来自<剑指offer> 包含min函数的栈 题目: 定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1)). 思路: 举例子让抽象问题具体 ...
- 正则化 L1 L2
机器学习中几乎都可以看到损失函数后面会添加一个额外项,常用的额外项一般有两种,一般英文称作ℓ1ℓ1-norm和ℓ2ℓ2-norm,中文称作L1正则化和L2正则化,或者L1范数和L2范数. L1正则化和 ...
- bzoj1123 割点性质应用
删掉无向图上任意一点,请求出将会增加的不连通的点对数 将无向图联通性的问题转化到搜索树方向上考虑 如果一个点不是割点,那么删掉该点的答案很简单,就是2*(n-1) 如果点u是割点,同时u在搜索树上有t ...
- 升级centos6.8内核
1.查看默认版本:uname -r 2.更新nss 3.安装elrepo的yum源,升级内核需要使用elrepo的yum源,在安装yum源之前还需要我们导入elrepo的key rpm --impor ...
- Windows Internals 笔记——错误处理
1.Windows函数检测到错误时,会使用一种名为“线程本地存储区”的机制将相应的错误代码与“主调线程”关联到一起.这种机制使得不同的线程能独立运行,不会出现相互干扰对方的错误代码的情况. 2.Get ...