我是靠谱客的博主 苹果小刺猬,最近开发中收集的这篇文章主要介绍freemaker实现分页,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

先看分页之后的效果图在这里插入图片描述大概是这样的,施一公显示是个页码,效果差不多跟百度下面的分页类似

后台代码

//这里的分页使用的是java封装好的PageRequest,内部有很多东西,首页、尾页、当前页、以及其他的,可以点到源码里面一探究竟
public ModelAndView findAll(@RequestParam(value = "page", defaultValue = "1") Integer page,
                        @RequestParam(value = "size", defaultValue = "10") Integer size,
                        Map<String,Object> map) 
    PageRequest request = PageRequest.of(page - 1, size);
    /*调用service查询所有*/
    OrgPageListVo orgPageListVo = orgInfoService.findAll1(request);
    //log.info是用来打印日志文件的,作用和输出语句一样
    log.info("【机构表】【查询所有】【机构page={}】",orgPageListVo.getPageDto());
    log.info("【机构表】【查询所有】【机构list={}】",orgPageListVo.getList());
    //把查询出来的结果放到map里面带到前端,进行显示
    map.put("orgInfoList",orgPageListVo);
    //返回的是下一个页面的路径
    return new ModelAndView("orgInfo/org_list");
}

orgPageListVo以json数据显示
	@Data
	@NoArgsConstructor
	@AllArgsConstructor
	public class OrgPageListVo {
	//存储分页信息
	 private PageDto pageDto;
	//存储返回查询出来的集合
	 private List<OrgVo> list;
}

pageDto里面的内容有:

@Data
public class PageDto {

private long total;

private int page;

private int size;

private boolean isFirst;

private boolean isLast;

private int totalPage;


public PageDto (Page page){
    this.total=page.getTotalElements();
    this.page = page.getPageable().getPageNumber();
    this.size = page.getPageable().getPageSize();
    this.isFirst = page.isFirst();
    this.isLast = page.isLast();
    this.totalPage = page.getTotalPages();
}

}

前端代码

  1. 前端框架用的是BootStrap,显示数据使用的是freemaker

    //后台已经把查好的数据放到了orgInfoList里面,	
    <#if orgInfoList.pageDto?exists && orgInfoList.pageDto.total gt 0>
            <div style=" margin-left: 150px; size: 5px">
                <div class="col-md-12 column">
                    <ul class="pagination">
                        <nav>
                            <ul class="pagination">
                                <#--声明变量currentPage初始值1-->
                                <#assign currentPage = 1/>
                                <#--如果该集合存在-->
                                <#if orgInfoList?exists>
                                <#--currentPage=当前页码-->
                                    <#assign currentPage=orgInfoList.pageDto.page/>
                                </#if>
                                <#--上一页 小于1 禁用-->
                                <#if currentPage lte 0>
                                    <li class="page-item disabled"><a class="page-link" href="#"><-</a></li>
                                <#else >
                                    <li class="page-item">
                                        <a class="page-link pagination-prev"
                                           href="/OrgInfoFindAll?page=${currentPage}&size=${(orgInfoList.pageDto.size)!}"
                                           style="margin-left: 10px">
                                            <-
                                        </a>
                                    </li>
                                </#if>
                                <#--对页码进行遍历-->
                                <#--没有超过10页-->
    
                                <#if orgInfoList.pageDto?exists>
                                <#--不足10页-->
                                    <#if (orgInfoList.pageDto.getTotalPage()<10)>
                                        <#assign begin=1/>
                                        <#assign end=orgInfoList.pageDto.getTotalPage()/>
                                    <#--前面不够五个 后面补齐-->
                                    </#if>
    
                                    <#if (orgInfoList.pageDto.getTotalPage()>10)>
                                        <#assign begin=currentPage-5/>
                                        <#assign end=currentPage+4/>
    
                                        <#if begin<1>
                                            <#assign begin=1/>
                                            <#assign end=begin+9/>
                                        </#if>
                                        <#if (end>orgInfoList.pageDto.getTotalPage())>
                                            <#assign end=orgInfoList.pageDto.getTotalPage()/>
                                            <#assign begin=end-9/>
                                        </#if>
                                    </#if>
                                    <#list (begin..end)! as index>
                                    <#--如果等于当前页码-->
                                        <#if orgInfoList.pageDto.page==index-1>
                                            <li class="page-item active">
                                                <a class="page-link" href="#" style="margin-left: 10px">
                                                    ${index}
                                                </a>
                                            </li>
    
                                        <#else >
                                            <li class="page-item">
                                                <a class="page-link"
                                                   href="/OrgInfoFindAll?page=${index}&size=${(orgInfoList.pageDto.size)!}"
                                                   style="margin-left: 10px">${index}</a>
                                            </li>
                                        </#if>
    
                                    </#list>
    
                                </#if>
    
                                <#--下一页-->
                                <#if currentPage gte orgInfoList.pageDto.getTotalPage()-1>
                                    <li class="disabled page-item">
                                        <a class="page-link" href="#" style="margin-left: 10px">
                                            ->
                                        </a>
                                    </li>
                                <#else >
                                    <li class="page-item">
                                        <a class="page-link pagination-next"
                                           href="/OrgInfoFindAll?page=${currentPage +2}&size=${(orgInfoList.pageDto.size)!}"
                                           style="margin-left: 10px">
                                            ->
                                        </a>
                                    </li>
                                </#if>
                            </ul>
                        </nav>
    
                    </ul>
                </div>
            </div>
        </#if>
    

后台代码是比较简单的,前台这边的逻辑需要很好的沥青,不能混乱,要不然可麻烦,祝你们成功啦

最后

以上就是苹果小刺猬为你收集整理的freemaker实现分页的全部内容,希望文章能够帮你解决freemaker实现分页所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(42)

评论列表共有 0 条评论

立即
投稿
返回
顶部