play framework中实现分页

在playframework中实现分页,我是采用了数据库的fetch原理实现的。

首先,在controllers中:

public static void previousPage(int startPosition) {
        int totalUpload = Upload.findAll().size();
        if(startPosition == 0) {
            startPosition = startPosition;
        }
        else {
            startPosition = startPosition - 1;
        }
        showAllUploads(startPosition);
    }

    public static void nextPage(int startPosition) {
        int totalUpload = Upload.findAll().size();
        if(startPosition >= totalUpload/5) {
            startPosition = startPosition;
        }
        else {
            startPosition = startPosition + 1;
        }
        showAllUploads(startPosition);
    }
这是上一页跟下一页的代码,然后在views文件中:

<div class="page-box">
        	<button class="next-page-btn"><a class="next-page-btn-a" href="@{Reports.showPreviousReport(startPosition)}">上一页</a></button>
            <div class="page-box-row">
                <a href="" class="current-page-a">第 1 页</a>
                <span class="triangle"></span>
                <ul class="page-ul">
                    %{
						for(int i=0;i<totalReport/5;i++){
                	}%
                		<li class="page-item current-page-li"><a href="@{Reports.showAllReports(i)}">第 ${i+1} 页</a></li>
                	%{
						}
                	}%
                </ul>
            </div>
            <button class="next-page-btn"><a class="next-page-btn-a" href="@{Reports.showNextReport(startPosition)}">下一页</a></button>
        </div>
	</div>

这样,在页面中,用户每按下上一页/下一页的按钮就会触发controllers中的previousPage/nextPage方法。然后就可以通过传入的当前页面的参数startPosition进行判断,首先判断startPosition是否到达首页或者尾页,如果是的话就不进行处理,否则的话就将startPosition进行增减。然后调用显示页面,并将改变后的startPosition传递过去。然后在调用数据库中的from(startPosition*5).fetch(5);这样就可以实现分页了。

你可能感兴趣的:(java,web开发,分页,playframework)