Jsp刷新分页模板,很全

 

1.用来实现上一页下一页,我直接写到查询页面上

        <%--page的分页--%>
        <style type="text/css">
            a {
                color: #555555;
                text-decoration: none;
                cursor: pointer;
            }
            .pages a.p_pre:hover {
                background-color: #eaeaea;
                color: #555555;
                border: 1px solid #cccccc;
            }
            .pages a {
                height: 36px;
                line-height: 36px;
                overflow: hidden;
                color: #666666;
                font-size: 16px;
                text-align: center;
                display: inline-block;
                padding: 0 12px;
                margin: 0 4px;
                border: 1px solid #cccccc;
                -webkit-border-radius: 2px;
                -moz-border-radius: 2px;
                border-radius: 2px;
            }

            .pages a:hover, .pages a.cur {
                color: #FFF;
                background-color: #DD4E62;
                border: 1px solid #DD4E62;
            }

        </style>
        <div class="pages">
            <c:if test="${pager.totalPage>=1}">
                <a href="${pageContext.request.contextPath}${pager.url}&pageindex=1" class="p_pre">首页</a>
                <c:if test="${pager.pageIndex>1}">
                    <a href="${pageContext.request.contextPath}${pager.url}&pageindex=${pager.pageIndex-1}" class="p_pre">上一页</a>
                </c:if>
                <c:forEach  var="temp" begin="${pager.pageIndex>3?pager.pageIndex-3:1}" end="${pager.totalPage-pager.pageIndex>3?pager.pageIndex+3:pager.totalPage}" step="1">
                    <c:if test="${pager.pageIndex==temp}">
                        <a href="${pageContext.request.contextPath}${pager.url}&pageindex=${temp}" class="cur">${temp}</a>
                    </c:if>
                    <c:if test="${pager.pageIndex!=temp}">
                        <a href="${pageContext.request.contextPath}${pager.url}&pageindex=${temp}">${temp}</a>
                    </c:if>
                </c:forEach>
                <c:if test="${pager.pageIndex<pager.totalPage}">
                    <a href="${pageContext.request.contextPath}${pager.url}&pageindex=${pager.pageIndex+1}" class="p_pre">下一页</a>
                </c:if>
                <a href="${pageContext.request.contextPath}${pager.url}&pageindex=${pager.totalPage}" class="p_pre">尾页</a>
            </c:if>
            <c:if test="${pager.totalPage==0}">
                <a href="#" class="cur">暂无记录</a>
            </c:if>
        </div>

2.遍历的方式

<c:forEach items="${pager.lists}" var="item">
                    <li class="w-280 m-l-13 m-r-13 bg-c-ffffff m-t-8 m-b-23 fl">
                        <a href="${pageContext.request.contextPath}/selectAllSys_videoByCid/${item.cid}" class="dsblock w-260 hg-140 ovhidden ">
                            <img src="${pageContext.request.contextPath}/jsp/front/videopic/${item.cimage}" alt=""/>
                            <div class="course-label">
                                <c:if test="${item.ctype==1}">
                                    <label>精品视频</label>
                                </c:if>
                                <c:if test="${item.ctype!=1}">
                                    <label>最新视频</label>
                                </c:if>
                                <%--<label>${item.ctype}</label>--%>
                            </div>
                        </a>
                        <div class="w-255 p-l-10 p-r-15 fl">
                            <div class="home_calsstxt w-200 fl">
                                <h3 class="w-all fs-16 ftc-000000 line-h32  one_hidden  m-t-6 fl">${item.cname}</h3>
                                <span class="dsblock w-all fs-14 ftc-ff0000 line-h32 fl">¥${item.cprice}</span> </div>
                        </div>
                    </li>
                </c:forEach>

3.工具类

package cn.dawn.util;

import java.util.List;

public class PagerInfo<T> {

        private int totalPage;// 总页数
        private int totalSize;// 总记录数
        private int pageSize;//每页的记录数
        private int pageIndex;//页码
        private String url;//地址
        public String getUrl() {
            return url;
        }

        public void setUrl(String url) {
            this.url = url;
        }

        private List<T> lists;

        public int getTotalPage() {
            //如果总记录数除以每页显示的记录数能整除,那么总页数等于商,否则商+1
            int total=totalSize%pageSize==0?totalSize/pageSize:totalSize/pageSize+1;
            return total;
        }

        public void setTotalPage(int totalPage) {
            this.totalPage = totalPage;
        }

        public int getTotalSize() {
            return totalSize;
        }

        public void setTotalSize(int totalSize) {
            this.totalSize = totalSize;
        }

        public List<T> getLists() {
            return lists;
        }

        public void setLists(List<T> lists) {
            this.lists = lists;
        }

        public int getPageSize() {
            return pageSize;
        }

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

        public int getPageIndex() {
            return pageIndex;
        }

        public void setPageIndex(int pageIndex) {
            this.pageIndex = pageIndex;
        }

}

4.springmvc方法

    /*根据搜索框查视频列表*/
    @RequestMapping("/searchcourselisttocontroller")
    public  String searchcourselisttocontroller(Model model,Integer pageindex,String cname){
        if(cname==null){
            cname="";
        }
        try {
            PagerInfo<Sys_course> pager = iCourseService.searchcourselisttocontroller(pageindex,cname);
            pager.setUrl("/searchcourselisttocontroller?cname="+cname);

            model.addAttribute("pager",pager);
        } catch (Exception e) {
            e.printStackTrace();
        }

        return "searchcourselist";
    }

5.service层方法

    @Override
    public PagerInfo<Sys_course> selectAllTypeThreeSys_course(Integer pageindex) throws Exception {

        int index2=pageindex==null?1:pageindex;

        //分页的集合
        PagerInfo<Sys_course> page=new PagerInfo<Sys_course>();

        Map<String,Object> map=new HashMap<String,Object>();
        map.put("pageIndex",(index2-1)*8);
        map.put("pageSize",8);
        List<Sys_course> lists = iCourseDAO.selectAllTypeThreeSys_course(map);

        page.setLists(lists);
        page.setTotalSize(iCourseDAO.selectAllTypeThreeSys_courseCount(map));
        page.setPageSize(8);
        page.setPageIndex(index2);

        return page;
    }

dao层俩个方法

    <select id="selectAllTypeThreeSys_course" resultType="Sys_course">
        SELECT * FROM sys_course WHERE cparent IN(SELECT c.cid AS ciddd  FROM sys_course  AS c WHERE cparent IN(SELECT cid FROM sys_course WHERE cparent=0)) ORDER BY ccreatetime DESC LIMIT #{pageIndex},#{pageSize}
    </select>

    <select id="selectAllTypeThreeSys_courseCount" resultType="int">
        SELECT COUNT(1) FROM sys_course WHERE cparent IN(SELECT c.cid AS ciddd  FROM sys_course  AS c WHERE cparent IN(SELECT cid FROM sys_course WHERE cparent=0)) ORDER BY ccreatetime DESC
    </select>

hibernate中分页怎么弄

    @Test
    /*
    * 查询姓名中包含b的员工,并且按照薪水降序排序
    * */
    public void t12CriteriaPage(){
        int count=((Long)session.createCriteria(Emp.class)
            .add(Restrictions.ilike("name","b",MatchMode.ANYWHERE))
                .setProjection(Projections.count("name")).uniqueResult()).intValue();
        System.out.println(count);
        //设置当前页和页大小
        int pageIndex=2;
        int pageSize=2;
        //计算总页数
        int totalPage=(count%pageSize==0)?(count/pageSize):(count/pageSize+1);
        //根据薪水进行降序排序
        Criteria criteria = session.createCriteria(Emp.class)
                .add(Restrictions.ilike("name","b",MatchMode.ANYWHERE))
                .addOrder(Order.desc("sal"));
        //设置 起始页和页大小
        List<Emp> emps=criteria.setFirstResult((pageIndex-1)*pageSize)
                .setMaxResults(pageSize).list();
        /*遍历*/
        for (Emp emp:emps){
            System.out.println(emp);
        }

        /*
        Hibernate: select count(this_.name) as y0_ from Emp this_ where lower(this_.name) like ?
        3
        Hibernate: select this_.empId as empId1_1_0_, this_.name as name2_1_0_, this_.sal as sal3_1_0_, this_.job as job4_1_0_, this_.deptNo as deptNo5_1_0_ from Emp this_ where lower(this_.name) like ? order by this_.sal desc limit ?, ?
        Hibernate: select dept0_.deptId as deptId1_0_0_, dept0_.name as name2_0_0_, dept0_.location as location3_0_0_ from Dept dept0_ where dept0_.deptId=?
        Emp{empId=2, name=‘Ab‘, job=‘财务猿2‘, sal=5000.0, dept=Dept{deptId=1, name=‘xx部‘, location=‘1楼‘}}
        * */
    }

更简单的hibernate分页

@Test
    /**
     * 分页
     *
     * 01.查询总记录数
     * 02.每页显示的数据
     * 03.总页数
     */
    public void t1Page(){
        String hql="select count(*) from Teacher";//会返回Long类型
        int counts=((Long)session.createQuery(hql).uniqueResult()).intValue();
        /*页大小*/
        int pageSize=2;
        /*总页数*/
        int totalPages=(counts%pageSize==0)?(counts/pageSize):(counts/pageSize+1);
        /*显示第二页内容*/
        int pageIndex=2;
        hql="from Teacher";
        Query query = session.createQuery(hql);;
        /*从哪一条开始查*/
        query.setFirstResult((pageIndex-1)*pageSize);
        /*设置页大小*/
        query.setMaxResults(pageSize);
        List<Teacher> teachers = query.list();
        for (Teacher t:teachers) {
            System.out.println(t);
        }

    }

原文地址:https://www.cnblogs.com/DawnCHENXI/p/9236632.html

时间: 2024-08-13 01:27:38

Jsp刷新分页模板,很全的相关文章

smarty+php+ajax 简单无刷新分页

简介 分页,无非就是从数据库中获得我们想查询的数据,再加以处理即可! ① 确定数据总数($count) ② 每页显示数据条数($pageSize) ③ 分多少页($pageCount) ④ 上一页($pagePrev) ⑤ 下一页($pageNext) ⑥ 判断越界问题 ⑦ 偏移量($offset) ⑧ sql语句($sql = "select * from goods limit $offset,$pageSize";) 简单归简单,我们还得考虑实际的应用.例如:如果你正在土豆网看&

IntelliJ IDEA使用教程(很全)

IntelliJ IDEA使用教程(很全) 这个编辑器我就不再多做介绍了.直接开始新建maven hello world 的Java web项目啦 你电脑上得有jdk1.7,或者1.8,然后就是maven3.x吧,再有就是tomcat7以上吧.还得有我这个编辑器.这些是准备条件 下面就直接开始看图啦: 这个我刚刚开始没注意细看,原来web app 的骨架有2个呢, 我一开始一直选择的是第一个,因为搜索的时候,一直以为匹配结果就一个, 后来才发现下面的那个才是我想要的. 所以,你也要注意咯 这个就

jQuery+AJAX+Struts实现无刷新分页

jQuery+AJAX+Struts实现无刷新分页 说明: 1.需要jQuery插件js文件: 2.使用myeclipse添加struts能力: 从前从客户端页面向服务器发送Ajax请求,需要在js中先创建XMLHttpRequest对象,对象创建好以后使用OPEN('GET/POST',URL,同步/异步)设置提交方式,URL地址,使用同步还是异步方式.然后使用send(data)向服务器发送数据,同时使用onreadystatechange来绑定回调函数.如果是使用GET方式提交数据,那么就

Ajax实现无刷新分页

注:本文中使用到的一些类库在前面文章都能找到源代码,我会在文中指明链接所在,为了缩短文章篇幅,由此带来的阅读不便,敬请谅解. 本文讲解 Ajax 实现无刷新分页.实现原理.代码展示.代码下载. 这里需要说明一些知识: 1.Ajax 无刷新页面的好处:提供良好的客户体验,通过 Ajax 在后台从数据库中取得数据并展示,取缔了等待加载页面而出现的空白状态: 2.那么,Ajax 无刷新页面是运行在动态页面(.PHP)?还是静态页面(.html/.htm/.shtml)?答案是:静态页面: 3.实现原理

TinkPHP_无刷新分页_未带搜索条件

1)前台显示模板: <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title>Ajax 实现无刷新页面</title> <meta http-equiv="Content-Type" conte

MySql配置参数很全的Mysql配置参数说明

MySql配置参数 很全的Mysql配置参数说明 1. back_log 指定MySQL可能的连接数量.当MySQL主线程在很短的时间内得到非常多的连接请求,该参数就起作用,之后主线程花些时间(尽管很短)检查连接并且启动一个新线程. back_log参数的值指出在MySQL暂时停止响应新请求之前的短时间内多少个请求可以被存在堆栈中.如果系统在一个短时间内有很多连接,则需 要增大该参数的值,该参数值指定到来的TCP/IP连接的侦听队列的大小.不同的操作系统在这个队列大小上有它自己的限制.试图设定b

在Thinkphp中使用AJAX实现无刷新分页

在Thinkphp目录的Lib\ORG\Util\目录里新建AjaxPage.class.php,写入一下内容: <?php // +---------------------------------------------------------------------- // | ThinkPHP [ WE CAN DO IT JUST THINK IT ] // +---------------------------------------------------------------

扩展GridView实现的一个自定义无刷新分页,排序,支持多种数据源的控件TwfGridView

最近项目View层越来越趋向于无刷新化,特别是数据展示方面,还要对Linq有很好的支持.在WebFrom模式的开发中,GridView是一个功能很强大,很常用的控件,但是他也不是完美的,没有自带的无刷新和排序(有人说UpdatePanel或第三方插件就可以实现无刷新,但是呵呵...那是重量级的无刷新实现,相信不少朋友和我一样讨厌UpdatePanel,引入一大堆很长的js库且不说,用起来感觉不到一点无刷新带来的快速),也不支持部分数据绑定分页(有人说部分数据绑定也可以用aspNetPager等第

javabean+servlet+jsp实现分页

前端实现用ligerUI实现分页,感觉用框架确实简单,闲着无聊,模拟着liger的分页界面实现了一遍(只要是功能,样式什么无视) 这里用基础的三层架构+servlet+jsp实现,思路很简单,把所有分页相关信息写入到一个pagebean类里面,service返回这个bean类,每次分页查询时都从该bean里查找信息.只是其中的细节问题比较繁琐,如边界处理(前端和后台边界都要处理),下拉框跳转后要显示当前页等等 这是ligerUI实现的分页样式(实现过程我的上一篇博客有写) 模拟实现过程: 目录结