2016-09-19 4 views
0

Я ищу шаблон Freemarker, который может выводить список на консоль в виде таблицы.Печать списка на консоль в формате таблицы

<#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?

ответ

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>, но это уродливее решения.

+0

Отлично, что работает. Любая идея, как я могу получить индекс ячейки 'x'. Я попробовал '$ {x? Counter}', но это просто возвращает номер строки. – DarVar

+0

Выяснил это. Создать переменную <#assign y++> – DarVar

Смежные вопросы