2016-01-19 6 views
8

以下のように構成されたftlファイル(例)を使用すると、すべての要素をレベル1に置き換える/置き換えることができます。Freemarker - 複数の子タグを作成する

複数のレベル2が混在していると、混乱が生じます。たとえば、何度も繰り返すことができます。交換のため、このような私のプロセスは、ここではこの時点で痛みのポイント

<parent> 
    <level1> 
     <a>${a}</a> 
     <b>${b}</b> 
     <c>${c}</c> 
     <d>${d}</d> 
    </level1> 
    <level2> 
     <e><${e}</e> 
     <f><${f}</f> 
     <g><${g}</g> 
     <h><${h}</h> 
     <i><${i}</i> 
     <j><${j}</j> 
    </level2> 
</parent> 

    map.put("a", "valuefora"); 
    map.put("b", "valueforb"); 
    map.put("c", "valueforc"); 
    map.put("d", "valueford"); 

    Configuration cfg = new Configuration(); 
    cfg.setDirectoryForTemplateLoading(new File("C:\\templates")); 
    Template temp = cfg.getTemplate("freemarker.ftl"); 
    Writer out = new OutputStreamWriter(System.out); 
    temp.process(map, out); 

にヒットするよう - どのように私は上記のようなスタイルを使用して、この生産については行くだろう - 私は、複数のLEVEL2ノードを持つ値のリストを持っていると仮定すると?

おかげで

答えて

2

私は私は本当にあなたの質問を理解してかどうかわからないが、私はあなただけFreeMarkerのlist -commandを使うと思います。あなたはあなたの文脈の中にマップやリストを置くでしょう。 list -commandはただ係る地図やオブジェクトを必要とし、

<#list your.object.or.map as listElem> 
    <level2> 
    <e>${listElem.e}</e> 
    <f>${listElem.f}</f> 
    </level2> 
</#list> 

あなたのコンテキストオブジェクトhereを文書化されています。

quickstart guideのリスト指示文を参照)には、listディレクティブの使用例も含まれています。

+0

ありがとうございます!私が気づいていなかったドット表記でした – Biscuit128

関連する問題