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

  1. package com.home.domain;
  2.  
  3. import java.util.List;
  4.  
  5. /**
  6. * 分页的JavaBean
  7. * @author Administrator
  8. */
  9. public class PageBean<T> {
  10.  
  11. // 当前页
  12. private int pageCode;
  13.  
  14. // 总页数
  15. // private int totalPage;
  16.  
  17. // 总记录数
  18. private int totalCount;
  19. // 每页显示的记录条数
  20. private int pageSize;
  21. // 每页显示的数据
  22. private List<T> beanList;
  23.  
  24. public int getPageCode() {
  25. return pageCode;
  26. }
  27. public void setPageCode(int pageCode) {
  28. this.pageCode = pageCode;
  29. }
  30.  
  31. /**
  32. * 调用getTotalPage() 获取到总页数
  33. * JavaBean的属性规定:totalPage是JavaBean是属性 ${pageBean.totalPage}
  34. * @return
  35. */
  36. public int getTotalPage() {
  37. // 计算
  38. int totalPage = totalCount / pageSize;
  39. // 说明整除
  40. if(totalCount % pageSize == 0){
  41. return totalPage;
  42. }else{
  43. return totalPage + 1;
  44. }
  45. }
  46.  
  47. /*public void setTotalPage(int totalPage) {
  48. this.totalPage = totalPage;
  49. }*/
  50.  
  51. public int getTotalCount() {
  52. return totalCount;
  53. }
  54. public void setTotalCount(int totalCount) {
  55. this.totalCount = totalCount;
  56. }
  57. public int getPageSize() {
  58. return pageSize;
  59. }
  60. public void setPageSize(int pageSize) {
  61. this.pageSize = pageSize;
  62. }
  63. public List<T> getBeanList() {
  64. return beanList;
  65. }
  66. public void setBeanList(List<T> beanList) {
  67. this.beanList = beanList;
  68. }
  69. }

  

WEB层

  1. public String findByPage(){
  2. //调用Service
  3. DetachedCriteria criteria = DetachedCriteria.forClass(Customer.class);
  4. //查询
  5. PageBean<Customer> page = customerService.findByPage(pageCode,pageSize,criteria);
  6. //压栈
  7. ValueStack vs = ActionContext.getContext().getValueStack();
  8. //栈顶 map集合
  9. vs.set("page", page);
  10. return "page";
  11. }

  service层

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

  Dao层

  1. //分页查询
  2. @Override
  3. public PageBean<Customer> findByPage(Integer pageCode, Integer pageSize, DetachedCriteria criteria) {
  4. PageBean<Customer> page = new PageBean<>();
  5. page.setPageCode(pageCode);
  6. page.setPageSize(pageSize);
  7. //先查询总记录数
  8. criteria.setProjection(Projections.rowCount());
  9. List<Number> list = (List<Number>) this.getHibernateTemplate().findByCriteria(criteria);
  10. if (list!=null&&list.size()>0) {
  11. int totalCount = list.get(0).intValue();
  12. page.setTotalCount(totalCount);
  13. }
  14. //强调 把select count(*)先清空 ,变成select *....
  15. criteria.setProjection(null);
  16. //分页查询数据,每页显示的数据
  17. //Hib..提供的分页查询
  18. List<Customer> beanList = (List<Customer>)this.getHibernateTemplate().findByCriteria(criteria, (pageCode-1)*pageSize, pageSize);
  19. page.setBeanList(beanList);
  20.  
  21. return page;
  22. }

  前台设置客户数据

  1. <c:forEach items="${page.beanList }" var="customer">
  2. <TR
  3. style="FONT-WEIGHT: normal; FONT-STYLE: normal; BACKGROUND-COLOR: white; TEXT-DECORATION: none">
  4. <TD>${customer.cust_name }</TD>
  5.  
  6. <TD>${customer.level.dict_item_name }</TD>
  7. <TD>${customer.source.dict_item_name }</TD>
  8. <TD>${customer.cust_linkman }</TD>
  9.  
  10. <TD>${customer.cust_phone }</TD>
  11. <TD>${customer.cust_mobile }</TD>
  12. <TD>
  13. <a href="${pageContext.request.contextPath }/customerServlet?method=edit&custId=${customer.cust_id}">修改</a>
  14.   
  15. <a href="${pageContext.request.contextPath }/customerServlet?method=delete&custId=${customer.cust_id}">删除</a>
  16. </TD>
  17. </TR>
    </c:forEach>

  前台设置分页

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

  12. <c:if test="${page.pageCode>1 }">
  13. [<A href="javascript:to_page(${page.pageCode-1})">前一页</A>]
  14. </c:if>
  15.  
  16. <B>${page.pageCode}</B>
  17.  
  18. <c:if test="${page.pageCode<page.totalPage }">
  19. [<A href="javascript:to_page(${page.pageCode+1})">后一页</A>]
  20. </c:if>

  21. <input type="text" size="3" id="page" name="pageCode" />
  22.  
  23. <input type="button" value="Go" onclick="to_page()"/>
  24. </DIV>
  25. </SPAN></TD>
  26. </TR>

  

  1. to_page()点击事件(Form表单提交到客户Action
  1. <SCRIPT language=javascript>
  2. //提交分页
  3. function to_page(page){
  4. if(page){
  5. $("#page").val(page);
  6. }
  7. document.customerForm.submit();
  8.  
  9. }
  10. </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. Python爬虫之关于登录那些事

    常见的登录方式有以下两种: 查看登录页面,csrf,cookie;授权:cookie 直接发送post请求,获取cookie 上面只是简单的描述,下面是详细的针对两种登录方式的时候爬虫的处理方法 第一 ...

  2. Vue环境搭建及node安装过程整理

    一.nodejs的安装 Node.js安装包及源码下载地址为:https://nodejs.org/en/download/. 我们可以根据不同平台系统选择你需要的Node.js安装包.Node.js ...

  3. vue项目在IE下报 [vuex] vuex requires a Promise polyfill in this browser问题

    如下图所示,项目在IE11下打开报错: 因为使用了 ES6 中用来传递异步消息的的Promise,而IE浏览器都不支持. 解决方法: 第一步: 安装 babel-polyfill . babel-po ...

  4. POJ 2304

    #include<iostream>// cheng da cai zi 11. 18 解锁问题 using namespace std; #define f 360 int main() ...

  5. (转)Python 字符串

    原文:http://www.runoob.com/python/python-strings.html

  6. 常用chrome插件&&常用FireFox插件

    第一部分:chrome插件 chrome中输入  chrome://chrome-urls/   可以得到包括缓存在内的很多相关信息. 1.掘金chrome插件 点击下载 掘金是一个高质量的互联网技术 ...

  7. springboot设置静态资源不拦截的方法

    springboot设置静态资源不拦截的方法 springboot不拦截静态资源需配置如下的类: import org.springframework.context.annotation.Confi ...

  8. Servlet Filter(过滤器)、Filter是如何实现拦截的、Filter开发入门

    Servlet Filter(过滤器).Filter是如何实现拦截的.Filter开发入门 Filter简介 Filter也称之为过滤器,它是Servlet技术中最激动人心的技术,WEB开发人员通过F ...

  9. 使用httpClient连接池处理get或post请求

    以前有一个自己写的: http://www.cnblogs.com/wenbronk/p/6482706.html 后来发现一个前辈写的更好的, 再此感谢一下, 确实比我写的那个好用些 1, 创建一个 ...

  10. 发布Framework 4.0到iis时,出现HTTP 错误 403.14 - Forbidden

    新发布MVC到服务器的时候,经常碰到403.14错误,绝大部分的时候都是因为Framework 4.0需要重新注册下,在运行里输入:C:\Windows\Microsoft.NET\Framework ...