2017-06-14 71 views
0

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

<#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框架的后端代码:

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

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

}, freeMarkerEngine); 

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

回答

0

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

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