Strut2与Hibernate的一个web分页功能
代码没有进行过多的封装,可能看起来有点action代码部分,hibernate在这里只起到了一个查询记录集的作用。
import java.util.ArrayList;
import java.util.List;
import java.util.Map; import org.apache.struts2.interceptor.SessionAware;
import org.hibernate.Criteria;
import org.hibernate.Session; import com.HibernateSessionFactory;
import com.hibertest1.dto.MyMessage; public class FenYeAction implements SessionAware{ private int start = 0; public int getStart() {
return start;
} public void setStart(int start) {
this.start = start;
} public String getMessage(){ List<MyMessage> msgs = new ArrayList<MyMessage>(); Session se = HibernateSessionFactory.getSession(); Criteria crit = se.createCriteria(MyMessage.class); //创建Criteria 对象 msgs = crit.list(); int size = msgs.size(); //获得查询出来的总量 if(size>5) {
session.put("pageCount",size%5); if(size-start<5) //如果起点位置到记录结束位置在5条结果之内
{
session.put("subMsg",msgs.subList(start, size)); //那么我们就取值到结束点的位置
}else
{
session.put("subMsg",msgs.subList(start, start+5)); //否则一次获取5条记录来
} }
else
{
session.put("subMsg", msgs); //如果小于等于5条记录就全部放入session
} return "succ";
} private Map<String,Object> session;
public void setSession(Map<String, Object> arg0) {
// TODO Auto-generated method stub
this.session = arg0;
}
一下是jsp页面的代码,主要用到struts2的ognl标签,下面的例子主要用的一张用户表,两个属性,id 和 name,所以至于hibernat和actine的配置我就不列举出来了
<body> <center>
<%@taglib prefix="s" uri="/struts-tags"%>
<table>
<tr><td>用户ID</td><td>用户名称</td></tr>
<s:iterator value="#session["subMsg"]">
<tr><td><s:property value="id"/></td><td><s:property value="name"/></td></tr>
</s:iterator>
</table>
<s:if test="#session["pageCount"]!=null">
<s:iterator var="i" begin="0" end="#session["pageCount"]" step="1">
<a href="http://wewoor.blog.163.com/blog/hirb/nextPage?start=<s:property value="#i*5"/>"><s:property value="#i+1"/></a>
</s:iterator>
</s:if> </center>
</body>
Strut2与Hibernate的一个web分页功能的更多相关文章
- hibernate和struts2实现分页功能
1.DAO层接口的设计,定义一个PersonDAO接口,里面声明了两个方法: public interface PersonDAO { public List<Person> queryB ...
- C# Web分页功能实现
无论是网站还是APP分页功能都是必不可少的.为什么使用分页呢? 1,加载速度快,不会占用服务器太多资源,减少服务器压力. 2,减少数据库压力. 3,提升用户体验. 那么我们常用的分页方法有两种. 1, ...
- C#设计模式总结 C#设计模式(22)——访问者模式(Vistor Pattern) C#设计模式总结 .NET Core launch.json 简介 利用Bootstrap Paginator插件和knockout.js完成分页功能 图片在线裁剪和图片上传总结 循序渐进学.Net Core Web Api开发系列【2】:利用Swagger调试WebApi
C#设计模式总结 一. 设计原则 使用设计模式的根本原因是适应变化,提高代码复用率,使软件更具有可维护性和可扩展性.并且,在进行设计的时候,也需要遵循以下几个原则:单一职责原则.开放封闭原则.里氏代替 ...
- 简单封装分页功能pageView.js
分页是一个很简单,通用的功能.作为一个有经验的前端开发人员,有义务把代码中类似这样公共的基础性的东西抽象出来,一来是改善代码的整体质量,更重要的是为了将来做类似的功能或者类似的项目,能减少不必要的重复 ...
- 利用Bootstrap Paginator插件和KnockoutJS完成分页功能
在最近一个项目中,需要结合一堆条件查询并对查询的结果数据完成一个简单分页功能,可是做着做着,自己的思路越来越模糊,做到心态崩溃!!! 哈哈,特此花点时间重新总结,并从最简单的分页,然后向多条件查询分页 ...
- 原生PHP实现Mysql数据分页功能
一. 思路整理 实现一个数据分页功能,需要有数据的总条数,每页展示的条数,和当前在第几页这三个参数 通过⌈总条数/每页展示的条数⌉可以得到总页数,比如某留言板有101条留言,每页展示10条,一那就需要 ...
- Flutter 分页功能表格控件
老孟导读:前2天有读者问到是否有带分页功能的表格控件,今天分页功能的表格控件详细解析来来. PaginatedDataTable PaginatedDataTable是一个带分页功能的DataTabl ...
- Java Web -【分页功能】详解
分页简介 分页功能在网页中是非常常见的一个功能,其作用也就是将数据分割成多个页面来进行显示. 使用场景: 当取到的数据量达到一定的时候,就需要使用分页来进行数据分割. 当我们不使用分页功能的时候,会面 ...
- requests+django+bs4实现一个web微信的功能
前言: 今天我们利用requests模块+django+bs4浏览器来实现一个web微信的基本功能,主要实现的功能如下 a.实现返回二维码 b.实现手机扫码后二维码变成变成头像 c.实现手机点击登陆成 ...
随机推荐
- Docker+Solr
原文:Docker+Solr docker 内的solr并不是部署在tomcat里,而是自启动的.默认的home是/opt/solr/server/solr # docker search solr ...
- 关于java中String的一点理解
String类是java的最基本类之中的一个,非常好的掌握它的原理非常是必要的! 1.String的Final类型的.是不可继承 的.final类默认的方法都为final类型,保证了方法不能被 ...
- 二、MongoDB基础知识
1.文档是MongoDB的核心概念.文档就是键值对的一个有序集{'msg':'hello','foo':3}.类似于python中的有序字典. 需要注意的是: #1.文档中的键/值对是有序的. #2. ...
- C#集合类:动态数组、队列、栈、哈希表、字典
1.动态数组:ArrayList 主要方法:Add.AddRange.RemoveAt.Remove 2.队列:Queue 主要方法:Enqueue入队列.Dequeue出队列.Peek返回Queue ...
- maven插件介绍之tomcat7-maven-plugin
tomcat7-maven-plugin插件的pom.xml依赖为: <dependency> <groupId>org.apache.tomcat.maven</gro ...
- html 代码
1.结构性定义 文件类型 <HTML></HTML> (放在档案的开头与结尾) 文件主题 <TITLE></TITLE> (必须放在「文头」区块内) 文 ...
- __INLINE
- 关于js盒子模型的知识梳理
盒子模型 JS盒子模型中的13个常用属性: clientWidth/clientHeight:可视区域的宽高,宽高+PADDING组成 clientTop/clientLeft:上边框和左边框的宽度 ...
- oracle 10g文件目录结构详解
一个典型的oralce目录结构如下: /u01└── oracle ├── admin (数据库管理文件位置,以实例划分) │ ├── mydb │ │ ├── adum ...
- PAL相机
输入时钟:27M PCLK:54M SDRAM时钟:80M ADV7393时钟:27M 1024*768 60帧 65MHZ