SSH框架分页
- DAO层
/**- * 分页查询全部员工,获取总记录数
- */
- public int totalPage(String className);
- /**
- * 分页查看,查看首页
- */
- public List<Employee> selectByPage(String className,int pageNo,int pageSize);
DaoImp里面
- private EmployeeDao employeeDao;
- public void setEmployeeDao(EmployeeDao employeeDao) {
- this.employeeDao = employeeDao;
- }
- /**
- * 员工列表分页查询,查询总页数
- * @param className
- * @return
- */
- @Override
- public int totalPage(String className) {
- String hql="select count(*) from "+className;
- Query query= this.getSession().createQuery(hql);
- int total=Integer.parseInt(query.list().get(0).toString());
- return total;
- }
- /**
- * 分页查询,查询首页
- * @param className
- * @param pageNo
- * @param pageSize
- * @return
- */
- @SuppressWarnings("unchecked")
- @Override
- public List<Employee> selectByPage(String className, int pageNo, int pageSize) {
- Query query=this.getSession().createQuery("from "+className);
- query.setFirstResult((pageNo-1)*pageSize);//每页显示的第一条记录
- query.setMaxResults(pageSize);//每页显示的记录数
- return query.list();
- }
BIz层
- /**
- * 分页查看,查看首页
- */
- @SuppressWarnings("rawtypes")
- public List<Employee> selectByPage(String className,int pageNo,int pageSize);
- /**
- * 查看下一页
- * @param line
- * @param className
- * @return
- */
- public int searchRecordsNextPage(int line,String className);
BIzImpl层
- private EmployeeDao employeeDao;
- public void setEmployeeDao(EmployeeDao employeeDao) {
- this.employeeDao = employeeDao;
- }
- /**
- * 分页查询
- * @param className
- * @param pageNo
- * @param pageSize
- * @return
- */
- @SuppressWarnings("rawtypes")
- @Override
- public List<Employee> selectByPage(String className, int pageNo, int pageSize) {
- List list= employeeDao.selectByPage(className,pageNo,pageSize);
- return list;
- }
- /**
- * 查看下一页
- * @param pageSize
- * @param className
- * @return
- */
- @Override
- public int searchRecordsNextPage(int pageSize, String className) {
- int total = employeeDao.totalPage(className);
- int pageNo = total / pageSize;
- if(total % pageSize>0){
- pageNo++;
- }
- return pageNo;
- }
Action控制层
- private Employee employee=new Employee();
- @Override
- public Employee getModel() {
- return employee;
- }
- private EmployeeBiz employeeBiz;
- public void setEmployeeBiz(EmployeeBiz employeeBiz) {
- this.employeeBiz = employeeBiz;
- }
- /**
- * 分页查看员工列表
- */
- @SuppressWarnings({"unchecked","rawtypes"})
- public String selectFirstPage(){
- Map<String,Object> request= (Map<String, Object>) ActionContext.getContext().get("request");
- try{
- List list=employeeBiz.selectByPage("Employee",1,3);
- int totalPage=employeeBiz.searchRecordsNextPage(3,"Employee");
- request.put("list",list);
- request.put("totalPage",totalPage);
- request.put("currentPage",1);
- }catch(Exception e){
- e.printStackTrace();
- }
- return "selectFirstPage";
- }
- /**
- * 分页查找下一页
- */
- @SuppressWarnings("rawtypes")
- public String selectNextPage(){
- HttpServletRequest request= ServletActionContext.getRequest();
- int next=Integer.parseInt(request.getParameter("page"));
- try{
- List list=employeeBiz.selectByPage("Employee",next,3);
- int total=employeeBiz.searchRecordsNextPage(3,"Employee");
- request.setAttribute("list",list);
- request.setAttribute("currentPage",next);
- request.setAttribute("totalPage",total);
- }catch(Exception e){
- e.printStackTrace();
- }
- return "selectNextPage";
- }
前端div接收参数
- <div>
- 第${currentPage }页
- <input type="hidden" id="tpage" name="tpage"
- value="${totalPage} "></input>
- <c:if test="${currentPage>1 }">
- <input type="button" value="首页" onclick="show(1)"></input>
- <input type="button" value="上一页" onclick="show(${currentPage-1})"></input>
- </c:if>
- <c:if test="${currentPage<totalPage }">
- <input type="button" value="下一页" onclick="show(${currentPage+1},${totalPage })"></input>
- <input type="button" value="尾页" onclick="show(${totalPage})"></input>
- </c:if>
- 共${totalPage }页
- </div>
- </div>
前端javascript里
- function show(next,total){
- if (next<=0) {
- alert("已经是首页了");
- return;
- }
- if (next>total) {
- alert("已经是尾页了");
- return;
- }
- document.forms[0].action="employeeselectNextPage?page="+next;
- document.forms[0].submit();
- }
注意:1,在body里面要想实现分页要把body里面的form表单加上
- <form id="myForm" name="myForm" method="post">
2,如果使用的是mysql需要修改hibernate.cfg.xml里面的
- <property name="dialect">org.hibernate.dialect.MySQLDialect</property>
3,在struts.xml文件里面需要修改name里面的是第一页和下一页的方法
- <!-- Employee action -->
- <action name="employee*" class="EmployeeAction" method="{1}">
- <result name="selectFirstPage">/employee.jsp</result>
- <result name="selectNextPage">/employee.jsp</result>
- <result name="add" type="redirectAction">employeeselectFirstPage</result>
- <result name="updateEmp">/employee_update.jsp</result>
- <result name="update" type="redirectAction">employeeselectFirstPage</result>
- <result name="delete" type="redirectAction">employeeselectFirstPage</result>
- <result name="error">/error.jsp</result>
- </action>
SSH框架分页的更多相关文章
- 分页技术框架(Pager-taglib)学习二(SSH数据库分页)
一.Pager-taglib数据库分页前提 Pager-taglib分页标签也可以实现数据库分页,与页面分页不同的是需要给后台传两个参数,一个是pageNo(当前页数)或pageOffset(偏 ...
- 使用maven搭建SSH框架实现登陆、列表查询分页
SSH框架:struts2 + spring + hibernate web层:struts2+jsp service层:javaBean dao层:hibernate spring:管理Action ...
- 管理系统-------------SSH框架书写登录和显示用户
一.思路的穿插. web.xml中的配置找到--->application.xml---->找到对应的Action---->找到struts.xml----->在去找actio ...
- 学习SSH框架
1.SSH框架的认知 在做相关的java的网页的开发制作时,良好的层次分解是十分有比要的,所以我们在云涌第三方的框架之下来简化还有名了我们相关的网站的开发. SSH框架实则为Struct + spri ...
- 项目分享:通过使用SSH框架的公司-学员关系管理系统(CRM)
----------------------------------------------------------------------------------------------[版权申明: ...
- 项目:《ssh框架综合项目开发视频》-视频目录和第六天的EasyUI简单讲解
4 练习使用技术: Struts2 + hibernate5.x + spring4.x + mysql数据库 1 crm:customer relational manager,客户关系管理 2 c ...
- SSH框架结合案例构建配置
ssh框架概述 SSH是 struts+spring+hibernate的一个集成框架,是目前比较流行的一种Web应用程序开源框架.区别于 Secure Shell . 集成SSH框架的系统从职责上分 ...
- 简化SSH框架的整合
一.开发环境: (1) OS:Windows 7 (2) DB:MySql 5.1.6 (3) JDK:1.8.0_17 (4) Server:Apache Tomcat 8. ...
- SSH框架整合
SSH框架整合 一.原理图 action:(struts2) 1.获取表单的数据 2.表单的验证,例如非空验证,email验证等 3.调用service,并把数据传递给service Service: ...
随机推荐
- [转载]URI 源码分析
需要提前了解下什么是URI,及URI和URL的区别: URI. URL 和 URN 的区别 URI 引用包括最多三个部分:模式.模式特定部分和片段标识符.一般为: 模式:模式特定部分:片段 如果省略模 ...
- [dart学习]第二篇:dart变量介绍 (一)
前言 本文的所有内容均是官方文档的简单翻译和理解,需要查看原文,请登录 https://www.dartlang.org/guides/language/language-tour 阅读, 让我们 ...
- [Offer收割] 编程练习赛1
A HihoCoder 1268 九宫 思路: 一般类似于数独的题目都是使用回溯解决,这里由于题目数据较小同样可以直接DFS得出结果.这里我用了一个偷懒的方法(next_permutation),直接 ...
- 记华硕小主机装xp并给nokia e7-00 刷机
前言 事情是这样的,年前给早先收的小e买了触摸外屏.这会儿有空就给它换上了屏幕,然后尝试装app的时候,发现证书有问题. 根据以往使用n73的经验,然后就百度怎么破解证书. 然后我发现,这些东西网上资 ...
- 13: ELK(ElasticSearch+Logstash+ Kibana)搭建实时日志分析平台
参考博客:https://www.cnblogs.com/zclzhao/p/5749736.html 51cto课程:https://edu.51cto.com/center/course/less ...
- numpy, matplotlib库学习笔记
Numpy库学习笔记: 1.array() 创建数组或者转化数组 例如,把列表转化为数组 >>>Np.array([1,2,3,4,5]) Array([1,2,3,4,5]) ...
- 对Activity的DecorView的包装(二)
看了下公司的系统代码对于根布局decor_layout.xml的修改, 有所获. 前些时候才开始做系统开发的时候, 总想改改系统的源码, 至于原因: 人总是想装装, 在踩过几个别人修改的坑后, 还是觉 ...
- 清除控制台 console
清除控制台 console.log(1) // console.clear() // CTRL + K // Ctrl + L // process.stdout.write('\033c'); // ...
- linux中centros6.7安装php5.6,httpd-2.2.19(web产品化)遇到的问题总结
前段时间在公司实习,web系统产品化的过程踩了很多坑,在这边总结一下,由于对linux不是很懂,全是自己一步步一个一个问题解决的 1,查看系统中是否安装apache,php,mysql环境 Apach ...
- Oracle update语句更新值来自另一张表中的数据
task 任务表 role 角色表 两表之间必须有关联的字段 update task t set t.roleName = ( select r.name from role r where r.id ...