以表格格式打印到控制台的列表

时间:2016-09-19 17:13:47

标签: freemarker

我正在寻找一个Freemarker模板,可以以表格格式将List输出到控制台。

<#list ["foo", "bar", "baz", "huhu", "lala", "keke", "koko", "fifi", "bubu"] as x>
${x}
</#list>

我正在寻找控制台输出,如:

foo      bar      baz
huhu     lala     keke
koko     fifi     bubu

我认为${x?item_cycle('col1', 'col2', 'col3')}可能是要走的路,只为col3项添加换行符。但是如果在item_cycle上有其他逻辑怎么办?

1 个答案:

答案 0 :(得分:2)

添加换行符的最佳方式可能是?chunk(n)。此外,例如,可以使用?right_pad(n)确保列宽(您还没有询问过)。所以例子是:

<#list ["foo", "bar", "baz", "huhu", "lala", "keke", "koko", "fifi", "bubu"]?chunk(3) as row>
  <#list row as x>${x?right_pad(10)}</#list>
</#list>

顺便说一下,正如你所问,当然你可以写<#if x?item_cycle(...) == ...>,甚至${x}${x?item_cycle('', '', '\n')}<#if x?item_count % 3 == 0>之类的东西,但这些都是更加丑陋的解决方案。