ssh框架分页显示问题
对于ssh框架来说的话分页,主要的思想就是dao层完成对数据库的操作,service层对业务进行管理,action对页面进行管理。
分页需要的bean。
- import java.util.List;
- public class PageBean {
- private List list;
- private int allRow;// 总记录数
- private int totalPage;// 总页数
- private int currentPage;// 当前页
- private int pageSize;// 每页记录数
- private boolean isFirstPage;// 是否为第一页
- private boolean isLastPage;// 是否为最后一页
- private boolean hasPreviousPage;// 是否有前一页
- private boolean hasNextPage;// 是否有下一页
- public List getList() {
- return list;
- }
- public void setList(List list) {
- this.list = list;
- }
- public void setFirstPage(boolean isFirstPage) {
- this.isFirstPage = isFirstPage;
- }
- public void setLastPage(boolean isLastPage) {
- this.isLastPage = isLastPage;
- }
- public void setHasPreviousPage(boolean hasPreviousPage) {
- this.hasPreviousPage = hasPreviousPage;
- }
- public void setHasNextPage(boolean hasNextPage) {
- this.hasNextPage = hasNextPage;
- }
- public int getAllRow() {
- return allRow;
- }
- public void setAllRow(int allRow) {
- this.allRow = allRow;
- }
- public int getTotalPage() {
- return totalPage;
- }
- public void setTotalPage(int totalPage) {
- this.totalPage = totalPage;
- }
- public int getCurrentPage() {
- return currentPage;
- }
- public void setCurrentPage(int currentPage) {
- this.currentPage = currentPage;
- }
- public int getPageSize() {
- return pageSize;
- }
- public void setPageSize(int pageSize) {
- this.pageSize = pageSize;
- }
- // /** *//**
- // * 初始化分页信息
- // */
- public void init() {
- this.isFirstPage = isFirstPage();
- this.isLastPage = isLastPage();
- this.hasPreviousPage = isHasPreviousPage();
- this.hasNextPage = isHasNextPage();
- }
- // /** *//**
- // * 以下判断页的信息,只需getter方法(is方法)即可
- // * @return
- // */
- //
- public boolean isFirstPage() {
- return currentPage == 1;// 如是当前页是第1页
- }
- public boolean isLastPage() {
- return currentPage == totalPage;// 如果当前页是最后一页
- }
- public boolean isHasPreviousPage() {
- return currentPage != 1;// 只要当前页不是第1页
- }
- public boolean isHasNextPage() {
- return currentPage != totalPage;// 只要当前页不是最后1页
- } //
- //
- // /** *//**
- // * 计算总页数,静态方法,供外部直接通过类名调用
- // * @param pageSize 每页记录数
- // * @param allRow 总记录数
- // * @return 总页数
- // */
- public static int countTotalPage(final int pageSize, final int allRow) {
- int totalPage = allRow % pageSize == 0 ? allRow / pageSize : allRow
- / pageSize + 1;
- return totalPage;
- }
- // /** *//**
- // *这个方法的逻辑非常关键,如果不弄清的话,在dao层调用的时候会出现不必要的麻烦。
- // * 计算当前页开始记录
- // * @param pageSize 每页记录数
- // * @param currentPage 当前第几页
- // * @return 当前页开始记录号
- // */
- public static int countOffset(final int pageSize, final int currentPage) {
- int offset = pageSize * (currentPage - 1);
- if(offset<=0){
- return offset = 0;
- }
- return offset;
- }
- //
- // /** *//**
- // * 计算当前页,若为0或者请求的URL中没有"?page=",则用1代替
- // * @param page 传入的参数(可能为空,即0,则返回1)
- // * @return 当前页
- // */
- public static int countCurrentPage(int page) {
- final int curPage = (page == 0 ? 1 : page);
- return curPage;
- }
- }
dao层代码:
- package test;
- import java.sql.SQLException;
- import java.util.List;
- import org.hibernate.HibernateException;
- import org.hibernate.Query;
- import org.hibernate.Session;
- import org.springframework.orm.hibernate3.HibernateCallback;
- import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
- public class MemberDaoImpl extends HibernateDaoSupport implements MemberDao {
- /* //实现的接口自己写就可以了
- *//** *//**
- * 分页查询
- * @param hql 查询的条件
- * @param offset 开始记录
- * @param length 一次查询几条记录
- * @return
- *//*
- */
- public List queryForPage(final String hql, final int offset,
- final int length) {
- List list = getHibernateTemplate().executeFind(new HibernateCallback() {
- public Object doInHibernate(Session session) throws
- HibernateException, SQLException {
- Query query = session.createQuery(hql);
- query.setFirstResult(offset);
- query.setMaxResults(length);
- List list = query.list();
- return list;
- }
- });
- return list;
- }
- public int getAllRowCount(String hql) {
- return getHibernateTemplate().find(hql).size();
- }
- }
action:
- public class ListAction extends ActionSupport {
- // 通过applicationContext.xml配置文件注入memberService的值
- private FenyeService fenyeservice ;
- public void setFenyeService (FenyeService fenyeservice ) {
- this.fenyeservice = fenyeservice ;
- }
- public FenyeService getFenyeService (FenyeService fenyeservice ){
- return fenyeservice
- }
- private int page;// 第几页
- private PageBean pageBean;// 包含分布信息的bean
- public int getPage() {
- return page;
- }
- public void setPage(int page) {// 若URL中无此参数,会默认为第1页
- this.page = page;
- }
- public PageBean getPageBean() {
- return pageBean;
- }
- public void setPageBean(PageBean pageBean) {
- this.pageBean = pageBean;
- }
- @Override
- public String execute() throws Exception {
- // 分页的pageBean,参数pageSize表示每页显示记录数,page为当前页
- this.pageBean = fenyeservice .queryForPage(3, page);
- return SUCCESS;
- }
- }
jsp页面的话就是<s:iterator value="pagebean.list">迭代标签了.<s:property value="list内的名字">
差不多就这些了。如果还有什么疑问的话可以给我留言,我尽快给你答复.
转载于:https://blog.51cto.com/3504199/921056
ssh框架分页显示问题相关推荐
- Eclipse搭建SSH环境实现Struts2分页显示mysql数据库表中内容
2019独角兽企业重金招聘Python工程师标准>>> 摘要 学习(Eclipse搭建SSH(Struts2+Spring3+Hibernate3)框架项目教程),尝试搭建ssh框架 ...
- 【基于SSH框架的个人博客系统06】头像文件上传与前后端分页机制
注意:本项目为博主初学Web开发时所写,所使用的方法都比较笨,不符合主流开发方法.例如,包管理应该使用Maven进行管理而不是手动导入,对前端后端代码的架构也并不是很清晰.大家学习思想即可,可以不用浪 ...
- eclipse ssh mysql数据库_Eclipse搭建SSH环境实现Struts2分页显示mysql数据库表中内容...
摘要 因运行后404错误,遂选择集成好SSH框架的MyEclipse开发工具: 最终实现了Struts2框架的分页查看学员信息,Spring3和Hibernate3的尝试宣告失败. 1.本项目的环境 ...
- SSh结合Easyui实现Datagrid的分页显示
近日学习Easyui,发现非常好用,界面很美观.将学习的心得在此写下,这篇博客写SSh结合Easyui实现Datagrid的分页显示,其他的例如添加.修改.删除.批量删除等功能将在后面的博客一一写来. ...
- 项目分享:通过使用SSH框架的公司-学员关系管理系统(CRM)
---------------------------------------------------------------------------------------------- [版权申明 ...
- 基于SSH框架的学生考试系统(注意看文档目录)
基于SSH框架的学生考试系统 (1).先看一下我的目录结构 (2).还有jsp文件目录 (3).代码:(对应文件目录) 1.1 package com.ischoolbar.programmer.ac ...
- [转载]SSH框架搭建详细图文教程
什么是SSH? SSH对应 struts spring hibernatestruts 采用MVC模式,主要是作用于用户交互spring 采用IOC和AOP~作用比较抽象,是用于项目的松耦合hiber ...
- java web的ssh框架_JavaWeb_(SSH论坛)_二、框架整合
基于SSH框架的小型论坛项目 一.项目入门 传送门 二.框架整合 传送门 三.用户模块 传送门 四.页面显示 传送门 五.帖子模块 传送门 六.点赞模块 传送门 七.辅助模块传送门 导入Jar包 导入 ...
- SSH框架中配置log4j的方法
/*2011年8月29日 09:52:54 by Rush*/ SSH框架中使用log4j的方便之处 1. 动态的改变记录级别和策略,即修改log4j.properties,不需要重启Web应用,这需 ...
最新文章
- “AI+教育”:人工智能下个掘金点?
- 一文读懂生物医学领域的传感器
- node mysql批量写入_如何使用node.js在MySQL中进行批量插入
- 聊聊 Redis 使用场景
- VTK:网格之SubdivisionDemo
- linux编写周期性计划任务,linux任务计划及周期性任务计划
- 使用sharepoint自带的文本编辑器1
- Python实现蒙特卡罗方法仿真模拟求解圆周率Pi值
- 线性代数及其应用第一章总结
- 实验吧CTF web刷题
- 路由器硬改内存笔记1-理论
- MyEclipse更换背景豆沙绿
- PS如何制作火焰效果图特效步骤教程
- php获取手机本地,PHP通过API获取手机号码归属地
- 【转】SPARC处理器30年沉浮
- 讯飞社区android 源码,android 讯飞语音 demo
- PS 2019 Mac版 自学入门系列(二)——区域选中
- Vue中图片加载问题总结
- 源码包安装 httpd
- js将字符串转换为数字
热门文章
- c 语言 double 除法_这是我的C语言入门笔记
- 模糊神经网络_神经网络模型:当网络开始产生类似于人类思维的过程
- c++ 使用nacos_Nacos配置的多环境管理
- python文件合法模式组合_python设计模式之组合模式
- 在java中私有方法能被重载吗_我可以在Java中重载私有方法吗?
- git idea 本地历史版本回滚_如何为IDEA项目创建GitHub存储库和本地Git存储库
- php模块化安装教程,homestead安装php 扩展 教程
- change element 原始值_change-element
- 计算机一级ie浏览器和电子邮件,2016年职称计算机考试Internet基础知识:利用IE收发电子邮件...
- Linux系统 proc self,Linux内核源代码情形分析-特殊文件系统/proc-对/proc/self/cwd的访问...