2016-09-19 18 views
0

Listを表形式でコンソールに出力できるFreemarkerテンプレートを探しています。表を表形式で出力する

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

私のようなコンソール出力を探しています:

foo  bar  baz 
huhu  lala  keke 
koko  fifi  bubu 

私だけcol3項目に対して改行を追加し、多分行く方法を${x?item_cycle('col1', 'col2', '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