SSH简单分页Demo

Dao实现层代码:

 1     @Override
 2     public BasicInfo getBasicInfo(BasicInfo basciInfo) {
 3         // TODO Auto-generated method stub
 4         if (basciInfo.getId() == null)
 5             return null;
 6         return (BasicInfo) getHibernateTemplate().get(BasicInfo.class, basciInfo.getId());
 7     }
 8
 9     @Override
10     public List<BasicInfo> findAll(String loginUserId, int firstResult, int maxResult, String type) throws Exception {
11         // TODO Auto-generated method stub
12         Query createQuery = getSession().createQuery("from BasicInfo where requester=? and state=?");
13         createQuery.setParameter(0, loginUserId);
14         createQuery.setParameter(1, type);
15         createQuery.setFirstResult(firstResult);//从第几个开始
16         createQuery.setMaxResults(maxResult);//最多记录数
17         return createQuery.list();
18     }

Action控制层:

 1 public class BaseAction extends ActionSupport implements Protected {
 2
 3
 4     public int firstResult = 1;// 起始行数
 5     public int maxResult = 10;// 每次查询10条
 6
 7     public int total = 0;// 总条数
 8     public int currentPage = 1;// 当前页
 9     public int totalPage = 0;// 总页数
10
11     public void paging() {
12         // 调用方法前设置总记录数
13         if (total < 0) {
14             return;
15         }
16         // 设置总页数
17         this.setTotalPage(total % maxResult > 0 ? total / maxResult + 1 : total / maxResult);
18         if (currentPage <= 1) {
19             currentPage = 1;
20         } else if (currentPage > this.getTotalPage()) {
21             currentPage = this.getTotalPage();
22         }
23         this.setFirstResult(currentPage - 1 > -1 ? (currentPage - 1) * maxResult : currentPage * maxResult);
24     }
25
26 ... 此处省略N个字
 1 public class Todo extends BaseAction {
 2
 3     public String execute() throws Exception {
 4         String loginUserId = getUserLogin().getUserLoginId();
 5         setTotal(basicInfoService.findToDo(loginUserId));
 6         paging();
 7         basicInfos = basicInfoService.pageFindToDo(loginUserId, firstResult, maxResult);
 8         return SUCCESS;
 9     }
10
11 }

FreeMarker视图层:

 1             <#if totalPage gt 1>
 2             <div class="paging">
 3                 <a href="${base}/workspace/todo.action?currentPage=1">首页</a>
 4                 <a href="${base}/workspace/todo.action?currentPage=${currentPage?if_exists-1}">上一页</a>
 5                 <#if (totalPage?if_exists>0)>
 6                 <#list 1..totalPage as idx>
 7                 <a <#if (currentPage?if_exists==idx_index+1)>class="checked"</#if> href="${base}/workspace/todo.action?currentPage=${idx_index+1}">${idx_index+1}</a>
 8                 </#list>
 9                 </#if>
10                 <a href="${base}/workspace/todo.action?currentPage=${currentPage?if_exists+1}">下一页</a>
11                 <a href="${base}/workspace/todo.action?currentPage=${totalPage}">末页</a>
12             </div>
13             </#if>

这种逻辑想通了,其实很简单!

时间: 2024-12-21 13:52:47

SSH简单分页Demo的相关文章

使用SSH实现分页的详细demo(附带数据库,MYSQl和Oracle)

原文:使用SSH实现分页的详细demo(附带数据库,MYSQl和Oracle) 源代码下载地址:http://www.zuidaima.com/share/1550463697128448.htm 详细的Struts2+hibernate+spring的分页demo,还附带数据库,支持mysql和oracle 源码截图

MVC中使用MVCPager简单分页

一.建立数据库以及建立MVC项目 自己随便建立一个数据库,并且添加数据.我建立的数据库如下. 二.建立LINQ to SQL映射. 然后一步步点确定 三.编写代码 在Controllers中建立控制器,模板为空.建立的项目如下: 要添加视图Index 在Controller中选中Index 并且添加视图, 模板选中List, 如下 注意后台要添加对MvcPager的程序集引用,后台代码如下: using Webdiyer.WebControls.Mvc; public class Student

asp.net mvc简单分页实例

@{ ViewBag.Title = "Index"; } @{ int pageIndex = (int)ViewBag.CurrentPage; int pageCount = (int)ViewBag.Pages; } <h2>Index</h2> <table> <tr> <th>cateId</th> <th>cateName</th> <th>cateNote<

Dubbo入门---搭建一个最简单的Demo框架

Dubbo背景和简介 Dubbo开始于电商系统,因此在这里先从电商系统的演变讲起. 单一应用框架(ORM) 当网站流量很小时,只需一个应用,将所有功能如下单支付等都部署在一起,以减少部署节点和成本. 缺点:单一的系统架构,使得在开发过程中,占用的资源越来越多,而且随着流量的增加越来越难以维护 垂直应用框架(MVC) 垂直应用架构解决了单一应用架构所面临的扩容问题,流量能够分散到各个子系统当中,且系统的体积可控,一定程度上降低了开发人员之间协同以及维护的成本,提升了开发效率. 缺点:但是在垂直架构

C#可扩展编程之MEF(一):MEF简介及简单的Demo

在文章开始之前,首先简单介绍一下什么是MEF,MEF,全称Managed Extensibility Framework(托管可扩展框架).单从名字我们不难发现:MEF是专门致力于解决扩展性问题的框架,MSDN中对MEF有这样一段说明: Managed Extensibility Framework 或 MEF 是一个用于创建可扩展的轻型应用程序的库. 应用程序开发人员可利用该库发现并使用扩展,而无需进行配置. 扩展开发人员还可以利用该库轻松地封装代码,避免生成脆弱的硬依赖项. 通过 MEF,不

在 asp.net mvc中的简单分页算法

//第一步:建立如下分页实体类:namespace MVCPager.Helpers { /// <summary> /// 简单分页算法类 /// </summary> public class Pager { public int RecordCount { get; set; } public int PageIndex { get; set; } public int PageSize { get; set; } public int PageCount { get { r

PHP+MYSQL实现简单分页

第一次发表文章,试一试,这是我编写的一段小代码,实现简单分页效果,代码如下: 1 <html> 2 <head> 3 <title>物资管理系统</title> 4 <meta http-equiv='Content-Type' content='text/html; charset=utf-8' /> 5 <link href="http://libs.baidu.com/bootstrap/3.0.3/css/bootstra

Mybatis_reveiw之Mybatis官方的一个很简单的Demo

上学的时候,一个老师讲了个故事,这个故事的大意是,我们有很多种方式去削苹果,第一种方式,使用指甲刀,第二种方式,使用机床,第三种方式,使用手摇的那种削平果小工具.我们当然都能够完成这个简单的需求,但是使用指甲刀削出来的苹果一定比较坑坑洼洼,不够美观,而且可能会让人感觉到有点没啥食欲.使用机床呢?可能会造成大量的浪费,原本一个美观大方的苹果变成了只能啃几口的正方形.第三个,因为是专门为了削苹果皮而设计的,理论上是最合适用来解决削苹果这个问题的解决方案. 一个好的架构,其实要做的事情是非常简单的,除

HttpClient的一种简单实现Demo

1 /** 2 * 测试HttpClient2种请求网络方式的Activity 3 * get和post 4 * 5 */ 6 public class HttpClientActivity extends Activity { 7 private HttpParams httpParams ; 8 private HttpClient httpClient ; 9 @Override 10 protected void onCreate(Bundle savedInstanceState) {