pageBean工具类代码(分页工具)

package com.home.domain;

import java.util.List;

/**
* 分页的JavaBean
* @author Administrator
*/
public class PageBean<T> { // 当前页
private int pageCode; // 总页数
// private int totalPage; // 总记录数
private int totalCount;
// 每页显示的记录条数
private int pageSize;
// 每页显示的数据
private List<T> beanList; public int getPageCode() {
return pageCode;
}
public void setPageCode(int pageCode) {
this.pageCode = pageCode;
} /**
* 调用getTotalPage() 获取到总页数
* JavaBean的属性规定:totalPage是JavaBean是属性 ${pageBean.totalPage}
* @return
*/
public int getTotalPage() {
// 计算
int totalPage = totalCount / pageSize;
// 说明整除
if(totalCount % pageSize == 0){
return totalPage;
}else{
return totalPage + 1;
}
} /*public void setTotalPage(int totalPage) {
this.totalPage = totalPage;
}*/ public int getTotalCount() {
return totalCount;
}
public void setTotalCount(int totalCount) {
this.totalCount = totalCount;
}
public int getPageSize() {
return pageSize;
}
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
public List<T> getBeanList() {
return beanList;
}
public void setBeanList(List<T> beanList) {
this.beanList = beanList;
}
}

  

WEB层

public String findByPage(){
//调用Service
DetachedCriteria criteria = DetachedCriteria.forClass(Customer.class);
//查询
PageBean<Customer> page = customerService.findByPage(pageCode,pageSize,criteria);
//压栈
ValueStack vs = ActionContext.getContext().getValueStack();
//栈顶 map集合
vs.set("page", page);
return "page";
}

  service层

//分页查询
@Override
public PageBean<Customer> findByPage(Integer pageCode, Integer pageSize, DetachedCriteria criteria) { return CustomerDao.findByPage(pageCode,pageSize,criteria);
}

  Dao层

//分页查询
@Override
public PageBean<Customer> findByPage(Integer pageCode, Integer pageSize, DetachedCriteria criteria) {
PageBean<Customer> page = new PageBean<>();
page.setPageCode(pageCode);
page.setPageSize(pageSize);
//先查询总记录数
criteria.setProjection(Projections.rowCount());
List<Number> list = (List<Number>) this.getHibernateTemplate().findByCriteria(criteria);
if (list!=null&&list.size()>0) {
int totalCount = list.get(0).intValue();
page.setTotalCount(totalCount);
}
//强调 把select count(*)先清空 ,变成select *....
criteria.setProjection(null);
//分页查询数据,每页显示的数据
//Hib..提供的分页查询
List<Customer> beanList = (List<Customer>)this.getHibernateTemplate().findByCriteria(criteria, (pageCode-1)*pageSize, pageSize);
page.setBeanList(beanList); return page;
}

  前台设置客户数据

<c:forEach items="${page.beanList }" var="customer">
<TR
style="FONT-WEIGHT: normal; FONT-STYLE: normal; BACKGROUND-COLOR: white; TEXT-DECORATION: none">
<TD>${customer.cust_name }</TD> <TD>${customer.level.dict_item_name }</TD>
<TD>${customer.source.dict_item_name }</TD>
<TD>${customer.cust_linkman }</TD> <TD>${customer.cust_phone }</TD>
<TD>${customer.cust_mobile }</TD>
<TD>
<a href="${pageContext.request.contextPath }/customerServlet?method=edit&custId=${customer.cust_id}">修改</a>
  
<a href="${pageContext.request.contextPath }/customerServlet?method=delete&custId=${customer.cust_id}">删除</a>
</TD>
</TR>
</c:forEach>

  前台设置分页

		<TR>
<TD><SPAN id=pagelink>
<DIV
style="LINE-HEIGHT: 20px; HEIGHT: 20px; TEXT-ALIGN: right">
共[<B>${page.totalCount}</B>]条记录,共[<B>${page.totalPage}</B>]页
,每页显示
<select name="pageSize"> <option value="2" <c:if test="${page.pageSize==2 }">selected</c:if>>2</option>
<option value="3" <c:if test="${page.pageSize==3 }">selected</c:if>>3</option>
</select>

<c:if test="${page.pageCode>1 }">
[<A href="javascript:to_page(${page.pageCode-1})">前一页</A>]
</c:if> <B>${page.pageCode}</B> <c:if test="${page.pageCode<page.totalPage }">
[<A href="javascript:to_page(${page.pageCode+1})">后一页</A>]
</c:if>

<input type="text" size="3" id="page" name="pageCode" />
页 <input type="button" value="Go" onclick="to_page()"/>
</DIV>
</SPAN></TD>
</TR>

  

to_page()点击事件(Form表单提交到客户Action)
<SCRIPT language=javascript>
//提交分页
function to_page(page){
if(page){
$("#page").val(page);
}
document.customerForm.submit(); }
</SCRIPT>

  

Javaweb查询客户&分页部分代码的更多相关文章

  1. ASP.NET MVC搭建项目后台UI框架—6、客户管理(添加、修改、查询、分页)

    目录 ASP.NET MVC搭建项目后台UI框架—1.后台主框架 ASP.NET MVC搭建项目后台UI框架—2.菜单特效 ASP.NET MVC搭建项目后台UI框架—3.面板折叠和展开 ASP.NE ...

  2. MVC客户管理(添加、修改、查询、分页)

    ASP.NET MVC搭建项目后台UI框架—6.客户管理(添加.修改.查询.分页)   目录 ASP.NET MVC搭建项目后台UI框架—1.后台主框架 ASP.NET MVC搭建项目后台UI框架—2 ...

  3. MVC+Bootstrap+Drapper使用PagedList.Mvc支持多查询条件分页

    前几天做一个小小小项目,使用了MVC+Bootstrap,以前做分页都是异步加载Mvc部分视图的方式,因为这个是小项目,就随便一点.一般的列表页面,少不了有查询条件,下面分享下Drapper+Page ...

  4. 【JavaWeb】客户关系管理系统

    前言 为了巩固开发的流程,我们再拿一个客户关系管理系统来练手...! 成果图 我们完成的就是下面的项目! 搭建配置环境 配置Tomcat 导入开发包 建立开发用到的程序包 在数据库创建相对应的表 CR ...

  5. 走向面试之数据库基础:二、SQL进阶之case、子查询、分页、join与视图

    一.CASE的两种用法 1.1 等值判断->相当于switch case (1)具体用法模板: CASE expression WHEN value1 THEN returnvalue1 WHE ...

  6. Web 组合查询加 分页

    使用ADO.NET 数据访问技术制作web端组合查询加分页的功能关键在于查询SQL语句的拼接 以Car 表为例 每页显示3条数据 数据访问类使用查询方法,tsql 查询的连接字符串,查询的参数放到Ha ...

  7. 关于ExtJs4的Grid带 查询 参数 分页(baseParams-->extraParams)

    (园里很多文章,美名其曰 :ExtJs GridPanel+查询条件+分页.  但是加查询条件后点击下一页,查询条件失效,求你们自己测试明白再显摆 不要误导我这种新人.) ExtJs6发布了,ExtJ ...

  8. EF 之 MVC 排序,查询,分页 Sorting, Filtering, and Paging For MVC About EF

    最近悟出来一个道理,在这儿分享给大家:学历代表你的过去,能力代表你的现在,学习代表你的将来. 十年河东十年河西,莫欺少年穷 学无止境,精益求精    上篇博客我们学习了EF CodeFirst增删改查 ...

  9. php分页类代码带分页样式效果(转)

    php分页类代码,有漂亮的分页样式风格 时间:2016-03-16 09:16:03来源:网络 导读:不错的php分页类代码,将类文件与分页样式嵌入,实现php查询结果的精美分页,对研究php分页原理 ...

随机推荐

  1. D05——C语言基础学PYTHON

    C语言基础学习PYTHON——基础学习D05 20180815内容纲要: 1 模块 2 包 3 import的本质 4 内置模块详解 (1)time&datetime (2)datetime ...

  2. D04——C语言基础学PYTHON

    C语言基础学习PYTHON——基础学习D04         20180810内容纲要: 1 内置函数 2 装饰器 3 生成器 4 迭代器 5 软件目录结构规范 6 小结 1 内置函数 内置函数方法详 ...

  3. 读/写锁的实现和应用(高并发状态下的map实现)

    程序中涉及到对一些共享资源的读和写操作,且写操作没有读操作那么频繁.在没有写操作的时候,两个线程同时读一个资源没有任何问题,所以应该允许多个线程能在同时读取共享资源.但是如果有一个线程想去写这些共享资 ...

  4. 解决waveInOpen录音编译x64程序出错的问题

    1.之前也碰到过x86程序升级为x64程序,关键点是类型大小的使用. 之前同事碰到过一个用int表示指针的程序,程序改为x64会出错,找原因找了半天. 2.今天我也碰到了,使用aveInOpen录音, ...

  5. python 获取excel表内容 生成php数组

    需求: 生成:同时处理数字类型,比如3 不能显示为3.0 [ ['type'=>3,'da_name'=>福建省平潭拓至美装饰工程有限公司,'da_aka'=>福建省平潭拓至美装饰工 ...

  6. jquery获取input的checked属性

    1.经常需要判断某个按钮是否被选中. 2.基于jquery. <!DOCTYPE html> <html lang="en"> <head> & ...

  7. Centos7下安装mysql5.6需要注意的点

    1.自带的Mariadb和mysql冲突需要卸载. 2.原先安装过的mysql没有卸载干净会导致安装失败. 3.mysql文件夹权限需要给够,my.cnf也是一样. 4.安装过程中如果出现的其他问题很 ...

  8. windows下快速启动或关闭系统服务方法

    在windows下有些后台服务会开机自动启动. 用命令行方式启动关闭应用服务 使用sc.exe命令功能列表 修改服务启动类型的命令行格式为(特别注意start=后面有一个空格) sc config 服 ...

  9. android学习-异步消息处理机制

    消息处理机制主要对象:Looper,Handler,Message(还有MessageQueue和Runnable) Looper不断从MessageQueue消息队列中取出一个Message,然后传 ...

  10. linux文件 面试知识

    1.        文件存储结构 Linux正统的文件系统(如ext2.ext3)中,一个文件由目录项.inode和数据块组成. 目录项:包括文件名和inode节点号. inode:又称文件索引节点, ...