我使用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 < 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);
任何帮助将不胜感激,提前谢谢!
答案 0 :(得分:0)
通常在将列表放入模型之前进行分页,因为这样您就可以避免加载您仍然无法显示的条目。因此,只需传递您将在当前页面上显示的条目列表(而不是整个列表),并传递可以使用的pageNumber
和totalPages
变量(两个数字)在模板中。
顺便说一句,在模板中,art.getAuthor().getName()
可以写为art.author.name
。 body?substring(0,70)
可以写为body[0 .. 70]
。