Play!2.1 分页写法

简介: 不知道Play实现分页的方法有多少。   play提供的一种是这样的。 首先实现一个分页类: public static class Page { private final int pageSize; private final long totalRowCount...

不知道Play实现分页的方法有多少。

 

play提供的一种是这样的。

首先实现一个分页类:

public static class Page {
		private final int pageSize;
		private final long totalRowCount;
		private final int pageIndex;
		private final List<ServerModel> list;

		public Page(List<ServerModel> data, long total, int page, int pageSize) {
			this.list = data;
			this.totalRowCount = total;
			this.pageIndex = page;
			this.pageSize = pageSize;
		}
		public long getTotalRowCount() {
			return totalRowCount;
		}
		public int getPageIndex() {
			return pageIndex;
		}
		public List<ServerModel> getList() {
			return list;
		}
		public boolean hasPrev() {
			return pageIndex > 1;
		}
		public boolean hasNext() {
			return (totalRowCount / pageSize) >= pageIndex;
		}
	}

 模版文件中的分页:

<ul>
              @if(currentPage.hasPrev) {
                  <li class="prev">
                      <a href="@link(currentPage.getPageIndex - 1)">&larr; 上一页</a>
                  </li>
              } else {
                  <li class="prev disabled">
                      <a>&larr; 上一页</a>
                  </li>
              }
              @if(currentPage.hasNext) {
                  <li class="next">
                      <a href="@link(currentPage.getPageIndex + 1)">下一页 &rarr;</a>
                  </li>
              } else {
                  <li class="next disabled">
                      <a>下一页 &rarr;</a>
                  </li>
              }
          </ul>

 其中的link方法定义:

@link(newPage:Int) = @{
    var sortBy = currentSortBy
    var order = currentOrder
    routes.Action.list(newPage)
}

 我在这里犯过一个错误,方法定义的最后一行不是来自routes文件而是写成了包路径,导致生成的href是

href="SimpleResult(200, Map(Content-Type -> text/html; charset=utf-8))"

 

 

 

 

目录
相关文章
|
6月前
|
前端开发
bladex中自定义分页的写法~
bladex中自定义分页的写法~
|
2月前
|
前端开发 PHP
ThinkPHP6,视图的安装及模板渲染和变量赋值 view::fetch() ,view::assgin() ,助手函数
本文介绍了ThinkPHP6中视图的安装和使用,包括通过`composer`安装`topthink/think-view`,使用`view::fetch()`进行模板渲染和变量赋值,以及使用`view::assign()`进行全局模板变量赋值。还提到了助手函数作为`view::fetch()`和`view::assign()`的封装组合,但效率较低。
ThinkPHP6,视图的安装及模板渲染和变量赋值 view::fetch() ,view::assgin() ,助手函数
veu3循环渲染分页
veu3循环渲染分页
91 0
|
容器
laypage静态数据分页组件的调用实战代码
laypage静态数据分页组件的调用实战代码
71 0
|
前端开发 Java 数据库
pagination分页插件的getResult明明有数据,但是getTotal方法为0
pagination分页插件的getResult明明有数据,但是getTotal方法为0
293 0
|
容器
使用Fragmentation,start跳转到嵌套viewpager页面出现返回键重写失效原因。
最近在写项目时,采用的是单Activity+多Fragment的架构,用的Fragmentation的库。我的主页面是一个BootomFragment的抽象类(当然它还有一个管理类),其又继承自最大的LatteDelegate,LatteDelegate又继承自Fragment并实现Fragmentation库的接口,当然,当然这只是其中一部分,所以简略的讲了一下,大概知道层次就行。
104 0
使用Fragmentation,start跳转到嵌套viewpager页面出现返回键重写失效原因。
|
缓存
ViewPager懒加载的实现,理解setUserVisibleHint,而不只是会用就好
Viewpager默认会缓存临近操作的两个页面,也就是至少会缓存一个页面。
206 0
ViewPager懒加载的实现,理解setUserVisibleHint,而不只是会用就好
单Acitivty+Fragment的优化写法。
一直以来,在写单Acitivty+Fragment的时候,标题栏的布局虽然 include 同一个,但是每次代码里都要对标题栏进行setText() ,而且每次都要写一遍标题栏的点击事件,而在以前的学习使用中,都没有考虑过去对它们进行一个优化。
74 0
|
算法
QuickPager分页控件,最简单的设置代码
代码 ///     /// postback 的最简单的分页设置    ///     public partial class PostSimpleness : BaseWebPage    {        #region 初始化        protected override void OnInit(EventArgs e)        {            base.OnInit(e);            //数据访问函数库的实例,使用基类里定义的。
832 0
|
JavaScript 搜索推荐 前端开发
【自然框架】QuickPager分页控件,新增一种分页方式——伪URL分页(Postback版)
适用场景   先说一下伪URL分页的适用场景。在网站的网页里实现查询功能,如果查询条件比较少的话,还比较好办,把查询条件放到URL里面传递即可。但是如果查询条件过多,就会照成URL的长度过长。既不好看,编写起来也很麻烦。
1162 0