FreeMarker pagination macros

I couldn’t find a good set of macros to help navigate through paginated data so I wrote my own. The macro names echo the names of the CakePHP PaginationHelper functions because…well, they’re reasonably sensible.

The macros expect you to add a model attribute called “paginationData” which contains (at least) the following properties:

pageNumber -> The current page number
pageSize -> The number of items in each page
pagesAvailable -> The total number of pages
sortDirection -> The sorting direction (ascending or descending)
sortField -> The field currently sorted by

In my implementation, my paginationData also contains a property called “pageItems” – the actual items in this page.

The macros available to you are:

  • first
    Outputs a link to the first page
  • last
    Outputs a link to the last page
  • next
    Outputs a link to the next page
  • previous
    Outputs a link to the previous page
  • numbers
    Outputs links to other pages. The macro takes a parameter called “maxPages”, which is the maximum number of pages that should be output. There is also a second parameter “separator”, which is the text/html that should be output between each page link.
  • page
    Outputs a link to a particular page. It takes the page number and link text as parameters. If you omit the link text it’ll default to the page number
  • counter
    Outputs the current page number and the total pages e.g. “1 of 20″
  • sort
    Outputs a link to sort by a field. Takes the field to sort by as its first parameter. If field is different to the current sort field, the link will change the sort field but not the sort direction. If the field is the same as the current sort field, the link will change the sort direction. The second parameter is the link text, which defaults to the field name with an upper case first letter. It also takes a parameter called “directions”. This is an an array of two items: the words being used in paginationData.sortDirection to describe the sorting direction of ascending or descending. Default: ["Asc", "Desc"]. So it can compare the current sorting direction and switch to the converse.

Note, ordinarily you’ll probably not need to use the “page” macro.

How to use

In Java, add a model attribute “paginationData” containing the properties I’ve described above. Then, in your view, import the library:

    <#import "pagination.ftl" as pagination />

Call the macros:

    <nav style="float:right;">
        <@pagination.first />
        <@pagination.previous />
        <@pagination.numbers />
        <@pagination.next />
        <@pagination.last />
    </nav>
    <@pagination.counter />

Which’ll give you something like:

For table headings that allow sorting:

    <table>
        <tr>
            <th><@pagination.sort "forename" /></th>
            <th><@pagination.sort "surname" /></th>
            <th><@pagination.sort "email" /></th>
            <th><@pagination.sort "created" "Registration date" /></th>
        </tr>
        ...
    </table>

Download

You can download the pagination macros here.

124 thoughts on “FreeMarker pagination macros

  1. Každé otočení ve Gates of Olympus doprovází epický soundtrack, který podtrhuje velkolepost herního zážitku. Kombinace orchestrálních a sborových prvků navozuje pocit, že se skutečně nacházíte mezi bohy na Olympu. Zvukové efekty při výherních kombinacích umocňují radost z každé výhry. Hra Gates of Olympus láká hráče na prostředí starověkého Řecka, tím nejzajímavějším je pro nás ale zajímavý herní systém i zábavná bonusová hra. Tak směle do toho! Hraní na online slotu si můžete ještě více užít díky bonusovým možnostem Wild a Free-Spin. Old School online výherní automat Dazzle Me nabízí sázku až 1000 Kč a součástí ovládání je možnost automatického otáčení. Výherních možností na výherním automatu Dazzle Me je celkem 76 a to na pěti válcích a pěti herních řadách. 
    https://theenergizedbody.com/?p=133031
    Gates of Olympus je must-have pro každého milovníka online automatů. Ať už hrajete v demo režimu, nebo za reálné peníze – tato hra vás pohltí od prvního spinu. Čeká vás: Kde najít správné online kasino v České republice? Vsadím se, zatímco pro druhého může být vzrušující hrát si s jednoduchým tennerem. Jakmile je spuštěna funkce Winners Circle, když se dostanete 5 rozptyluje na aktivní platební lince. 22bet casino cz pokud byste se dostali do omezených oblastí, vyberte ji z našeho seznamu a otevřete online kasino prostřednictvím této stránky. Jmenuji se Petr Malý jsem absolventem oboru Mediální studia a žurnalistika na Masarykově univerzitě v Brně.Studium mi poskytlo pevné základy v oblasti mediální komunikace, kritické práce s informacemi a profesionálního psaní, což se odráží v mé dlouholeté publikační činnosti.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>