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

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

  1. 【Java EE 学习 57】【酒店会员管理系统之分页模板书写】

    分页一直是一个比较麻烦的问题,特别是在我做的这个系统中更是有大量的分页,为了应对该问题,特地写了一个模板以方便代码重用,该模板包括后台分页的模板.前端显示的模板两部分. 一.分页分析 分页需要三种类型 ...

  2. 很全的vue插件汇总,赶紧收藏下(转)

    Vue是一个构建数据驱动的 web 界面的渐进式框架.Vue.js 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件特别整理了常用的vue插件,来了个大汇总,方便查找使用,便于工作 ...

  3. IntelliJ IDEA使用教程(很全)

    IntelliJ IDEA使用教程(很全) 这个编辑器我就不再多做介绍了.直接开始新建maven hello world 的Java web项目啦 你电脑上得有jdk1.7,或者1.8,然后就是mav ...

  4. TP2.0或3.1 或者 3.2 下使用ajax+php做无刷新分页(转+自创)

    1.前言 作为一名php程序员,我们开发网站主要就是为了客户从客户端进行体验,在这里,thinkphp框架自带的分页类是每次翻页都要刷新一下整个页面,这种翻页的用户体验显然是不太理想的,我们希望每次翻 ...

  5. thinkphp下实现ajax无刷新分页

    1.前言 作为一名php程序员,我们开发网站主要就是为了客户从客户端进行体验,在这里,thinkphp框架自带的分页类是每次翻页都要刷新一下整个页面,这种翻页的用户体验显然是不太理想的,我们希望每次翻 ...

  6. 很全的 Python 面试题

    很全的 Python 面试题 Python语言特性 1 Python的函数参数传递 看两个例子:           Python   1 2 3 4 5 a = 1 def fun(a):      ...

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

    在Thinkphp目录的Lib\ORG\Util\目录里新建AjaxPage.class.php,写入一下内容: <?php // +------------------------------ ...

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

    最近项目View层越来越趋向于无刷新化,特别是数据展示方面,还要对Linq有很好的支持.在WebFrom模式的开发中,GridView是一个功能很强大,很常用的控件,但是他也不是完美的,没有自带的无刷 ...

  9. thinkphp ajax 无刷新分页效果的实现

    思路:先做出传统分页效果,然后重新复制一份Page.class.php类,对它进行修改,把js中的函数传到page类中,把上一页.下一页.首页.尾页.链接页中的url地址改成js控制的函数,模板页面中 ...

随机推荐

  1. IntelliJ IDEA中 查看某个类中的所有方法

    方法一:alt + 7 方法二: ctrl + F12 方法三: 自定义 File Structure

  2. SpringBoot实战(十二)之集成kisso

    关于kisso介绍,大家可以参考官方文档或者是我的博客:https://www.cnblogs.com/youcong/p/9794735.html 一.导入maven依赖 <project x ...

  3. 说说application/x-www-form-urlencoded和application/json的区别

    今天一位同事在于微信小程序开发人员那边在对接测试的时候,遇到了一个错误,安卓那边是以application/json作为请求体类型,而Java这边仍向往常那样没有多么大的变化,但是就是前台传输的数据为 ...

  4. CentOS7 安装配置备忘录

    1. 安装 epel 源 $ sudo yum install epel-release.noarch 如果想强制服务器使用 tuna 的镜像,可以如下修改 /etc/yum.repos.d/epel ...

  5. java 中重载(Overload)和重写(Override)的区别

    首先重载和重写是应用于两个不同场景下面的两种不同的手段: 两者各自的特征: 重载(Overload):首先是位于一个类之中或者其子类中,具有相同的方法名,但是方法的参数不同,返回值类型可以相同也可以不 ...

  6. BindingException: Invalid bound statement (not found)问题排查:SpringBoot集成Mybatis重点分析

    重构代码,方法抛出异常:BindingException: Invalid bound statement (not found) 提示信息很明显:mybatis没有提供某方法 先不解释问题原因和排查 ...

  7. python3爬虫编码问题

    使用爬虫爬取网页经常遇到各种编码问题,因此产生乱码今天折腾了一天,全部总结一遍环境:win10,pycharm,python3.41.首先先来网页编码是utf-8的:以百度首页为例:使用request ...

  8. Oracle 触发器(一)

    1)触发器是一种特殊的存储过程,触发器一般由事件触发并且不能接受参数,存储器由语句块去调用:触发器是当某个事件发生时自动地隐式运行. 2)触发器分类: 1.DML触发器: 创建在表上,由DML事件引发 ...

  9. 关于MySQL优化问题

    众所周知在数据量庞大的情况下普通的SQL语句已经满足不了我们的需要了,这个时候就需要DBA去进行数据库的优化,而我们作为一名开发人员不能对数据库进行优化这时该怎么办呢?答案是只能在SQL语句上面进行优 ...

  10. 剑指Offer_编程题之从尾到头打印链表

    题目描述 输入一个链表,从尾到头打印链表每个节点的值.