Freemarker - 创建多个子标签

Bis*_*128 8 java xml freemarker

给定一个ftl文件,结构如下(只是一个例子)我能够替换/插入级别1中的所有元素,这很好.

当可能存在多个level2时,我会产生混淆 - 例如它可能重复多次.因此,我的替换过程将成为一个痛点

<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);
Run Code Online (Sandbox Code Playgroud)

此时此处 - 假设我有一个包含多个level2节点的值列表 - 我将如何使用上面显示的样式生成它?

谢谢

jah*_*jah 2

我不确定我是否真的理解你的问题,但我认为你只会使用 freemarker list-命令。您可以将地图或列表放在您的上下文中。-命令list记录在此处

<#list your.object.or.map as listElem>
  <level2>
     <e>${listElem.e}</e>
     <f>${listElem.f}</f>
   </level2>
</#list>
Run Code Online (Sandbox Code Playgroud)

您的上下文对象只需要一个相应的地图或对象。

快速入门指南(请参阅list 指令)还包含使用 list 指令的示例。