使用Spark Framework在FreeMarker中进行简单的分页

时间:2017-06-14 05:37:03

标签: pagination freemarker spark-framework

我使用FreeMarker实现一个简单的博客使用Spark Framework。我需要实现分页,以便每页只显示5个条目,并且没有必要显示页码,下一个和上一个按钮就可以了。但是,我甚至不知道在分页中从哪里开始。这是我当前的代码,用于显示所有条目:

<#list entries as art>
    <h2>
        <a href="/Entrada/${art_index}">${art.getTitle()}</a>
    </h2>
    <p>
        Author: <a href="">${art.getAuthor().getName()}</a>
    </p>
    <p><span class="glyphicon glyphicon-time"></span>${art.getDate()}</p>
    <hr>

    <#assign body=art.getBody()>
    <#if body?length &lt; 70>
        ${body}
    <#else>
        ${body?substring(0,70) + "..."}
    </#if>

    <br><br>
    <a class="btn btn-primary" href="/Entrada/${art_index}">Read More<span class="glyphicon glyphicon-chevron-right"></span></a>

    <hr>

</#list>

此外,这是Spark Framework中的后端代码:

get("/Home", (request, response) -> {

    Map<String, Object> attributes = new HashMap<>();
    attributes.put("entries", entrie.getEntries());
    return new ModelAndView(attributes, "index.ftl");

}, freeMarkerEngine);

任何帮助将不胜感激,提前谢谢!

1 个答案:

答案 0 :(得分:0)

通常在将列表放入模型之前进行分页,因为这样您就可以避免加载您仍然无法显示的条目。因此,只需传递您将在当前页面上显示的条目列表(而不是整个列表),并传递可以使用的pageNumbertotalPages变量(两个数字)在模板中。

顺便说一句,在模板中,art.getAuthor().getName()可以写为art.author.namebody?substring(0,70)可以写为body[0 .. 70]