之前写过一篇博客  java分页的实现(后台工具类和前台jsp页面),介绍了分页的原理。

今天整合了Spring和SpringMVC和MyBatis,做了增删改查和分页,之前的逻辑都写在了Servlet里,

如今用了SSM框架,业务逻辑应该放在业务层(service),

这里有一个小问题:实现分页时,我们需要向页面中传两个参数:

  • page对象(封装了页码,页容,总页数,总记录数,取得选择记录的初始位置)
  • 集合对象(封装了bean类的信息)

也就是说,我们需要从service层获取到两个值,但是一个函数只有返回值(?),如何解决?

(1)第一种:写两个函数不就行了;

(2)第二种:添加引用;

(3)第三种:封装:

  ① 将 List 封装到 Page 中

  ② 新建一个类,封装 Page 和 List 

个人认为,分开写比较好(3.2),

1、新建一个 LimitPageList

 1 public class LimitPageList {
 2     private Page page;
 3     private List<?> list;
 4     public Page getPage() {
 5         return page;
 6     }
 7     public void setPage(Page page) {
 8         this.page = page;
 9     }
10     public List<?> getList() {
11         return list;
12     }
13     public void setList(List<?> list) {
14         this.list = list;
15     }
16 }

Page工具类

 1 public class Page implements Serializable {
 2     private static final long serialVersionUID = -3198048449643774660L;
 3 
 4     private int pageNow = 1; // 当前页数
 5 
 6     private int pageSize = 10; // 每页显示记录的条数
 7 
 8     private int totalCount; // 总的记录条数
 9 
10     private int totalPageCount; // 总的页数
11 
12     @SuppressWarnings("unused")
13     private int startPos; // 开始位置,从0开始
14     
15     public Page(){}
16     
17     //通过构造函数 传入 总记录数 和 当前页
18     public Page(int totalCount, int pageNow) {
19         this.totalCount = totalCount;
20         this.pageNow = pageNow;
21     }
22 
23     //取得总页数,总页数=总记录数/每页显示记录的条数
24     public int getTotalPageCount() {
25         totalPageCount = getTotalCount() / getPageSize();
26         return (totalCount % pageSize == 0) ? totalPageCount : totalPageCount + 1;
27     }
28 
29     public void setTotalPageCount(int totalPageCount) {
30         this.totalPageCount = totalPageCount;
31     }
32 
33     public int getPageNow() {
34         return pageNow;
35     }
36 
37     public void setPageNow(int pageNow) {
38         this.pageNow = pageNow;
39     }
40 
41     public int getPageSize() {
42         return pageSize;
43     }
44 
45     public void setPageSize(int pageSize) {
46         this.pageSize = pageSize;
47     }
48 
49     public int getTotalCount() {
50         return totalCount;
51     }
52 
53     public void setTotalCount(int totalCount) {
54         this.totalCount = totalCount;
55     }
56 
57     //取得选择记录的初始位置
58     public int getStartPos() {
59         return (pageNow - 1) * pageSize;
60     }
61     
62 }
Page

相关文章:

  • 2021-10-02
  • 2021-08-20
  • 2022-01-21
  • 2021-04-10
  • 2021-09-06
  • 2022-01-02
  • 2021-08-19
猜你喜欢
  • 2021-10-14
  • 2021-12-14
  • 2022-12-23
  • 2022-12-23
  • 2021-08-29
  • 2021-11-13
  • 2021-04-17
相关资源
相似解决方案