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";
     }

  

           

  

时间: 2024-08-07 09:08:44

JSP页面分页显示数据的相关文章

PHP之分页显示数据-新闻系统

一.项目设计 1.项目要求 2.主页面使用frame框架进行设计,内容如下: index.php <span style="font-family:SimSun;font-size:18px;"><html> <frameset rows="80%,20%" frameborder="no" border="0" cols="900px"> <frameset co

Flask分页显示数据

在做网页的过程中,随着展示的数据增多,如果要在一页中显示全部内容,浏览速度会变慢且不符合实际需求.在 Web 浏览器中, 内容多的网页需要花费更多的时间生成.下载和渲染, 所以网页内容变多会降低用户体验的质量.这一问题的解决方法是分页显示数据,进行片段式渲染. 在页面中渲染数据 <span style="font-size:18px;">app/main/views.py</span> @main.route('/userManage_admin', metho

struts2 hibernate 在jsp页面上面显示多个图片

最近需要在一个jsp页面上面遍历出多个图片,平时做的比较多的是string integer等类型的遍历,图片是二进制的与原来常用的类型有很大的不同. BBFSeal.java public class BBFSeal { private Blob content; private String id; private String name; private BBFUseruser; private Blob imageSeal; public BBFSeal() { } public BBFS

jQuery+Ajax+PHP+Mysql实现分页显示数据

css <style type="text/css"> #loading{ position: absolute; top: 200px; left:400px; } #container .pagination ul li.inactive, #container .pagination ul li.inactive:hover{ background-color:#ededed; color:#bababa; border:1px solid #bababa; curs

Struts2中jsp页面怎么实现一加载页面就显示数据

怎么把list里面的数据在jsp页面一加载的时候就显示出来,那么在Action里面和jsp页面该怎么做呢 注意:至始至终,就只有一个页面,,页面就比如说是index.jsp(欢迎页面) 才在学,纠结了一上午,还没解决,望大家提点下 index对应的action里面初始化list,然后在index.jsp里面显示不就行了吗? http://www.iteye.com/problems/123708 http://www.iteye.com/problems/123709 http://www.it

分页显示数据----前端(将数据库中的信息分页显示到网页)

在上篇文章中,我们已经完成了分页显示的后台处理,现在进行前端的处理. 期望显示结果: 由于对于不同的项目.不同的数据库数据部分不同,所以我们将分页部分提取出来,单独建立jsp页面: 1 <%@ page language="java" contentType="text/html; charset=UTF-8" 2 pageEncoding="UTF-8"%> 3 <%@ taglib prefix="c"

springMVC笔记:jsp页面获取后台数据记录列表

1.读取数据库中的记录List<HashMap<String,String>> attributes; 2.Controller构造Model如下: @RequestMapping("display.do") public ModelAndView display(HttpServletRequest request, ModelMap model) { List<HashMap<String, String>> myList = dis

Java简单博客系统(二)静态页面动态化显示数据表内容

(一)准备工作 建立java Web项目基础的四个package 将JSP相关库和MySQL数据驱动包放到相应的目录 下面列出com.java.util中的三个类的代码,在项目中经常用到,基本是参照java1234.com小锋老师的项目代码稍作写出来的. public class DbUtil { //定义获取数据库连接的方法 private String dburl="jdbc:mysql://127.0.0.1:3306/db_blog?useSSL=false&serverTime

如何将servlet中的变量在jsp页面中显示---jsp中的EL表达式

1.EL(Expression Language)表达式 语 法:${},放在body中 2.EL表式一般情况下,从作用域对象中取值作用域对象有四个:pageContext,request,session,application,从小到大 例如: <% int a = 1234; //利用作用域对象设置key-value,即变量 pageContext.setAttribute("a", a); %> -----这是设置在<!DOCTYPE html >标签之上