2017-06-14 72 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]