freemarker整合SpringBoot(三)——分页

前言

本文章主要是针对view层的分页,不涉及数据库部分的描述。分页是很多查询中需要用到的功能,所以复用性很强,前端分页可以做成一个组件来实现。freemarker可以通过macro指令实现自定义标签,通过自定义标签实现组件复用。

macro指令的简单介绍

自定义标签,可以包含标签名,参数,通过macro指令实现

<#macro name param1 param2 ... paramn>
  标签中要实现的功能 // 在freemarker的预定义标签或自定义标签中可以直接使用传进来的参数,在标签外使用${param1},来获取参数值
<#macro>

通过使用<@name param1 param2 paramn>/@name的方式调用自定义标签
当在定义体中加入<#nested/>时,可以将使用体中的内容嵌套进去
例如:


<#macro list count >
    <#list 1..count as x>
        <#nested x, x/2, x==count>
    #list>
    <li><span>结束span>li>
    <#return />
    <li><span>已结束span>li>
#macro>

<@list count = 4; c, halfc, last>
    ${c}: ${halfc} <#if last==c>last!#if>
@list>

显示结果:

  1. 0.5
  2. 1
  3. 1.5
  4. 2 last!

分页组件的实现

后台

PageParam

  • 封装查询参数
  • pn
    • 当前页
  • pageSize
    • 每页显示记录数

PageVO

  • 封装返回参数
    freemarker整合SpringBoot(三)——分页_第1张图片
    这里之所以用了page和pn是为了适配不同的组件,可忽略

Controller

freemarker整合SpringBoot(三)——分页_第2张图片
由于没有使用数据库,只是将一些数据放到了.json文件中。主要是通过PageVo将分页信息携带回前端。

静态化模板

模板位置

freemarker整合SpringBoot(三)——分页_第3张图片

分页组件的使用

freemarker整合SpringBoot(三)——分页_第4张图片下面两个是自定义的分页标签

pageSizeButtons

  • 标签名name
    • pageSizeButtons
  • 参数
    • param1
      • pageSize
        • 每页记录数
    • param2
      • totalNums
        • 总记录数
    • param3
      • “xx.html”
        • 后台请求路径

组件定义

<#macro pageSizeButtons pageSize totalNums url>
    中间是功能实现
#macro>

freemarker整合SpringBoot(三)——分页_第5张图片

效果

freemarker整合SpringBoot(三)——分页_第6张图片

参考:freemarker文档

你可能感兴趣的:(freemarker)