【问题标题】:Freemarker - creating multiple child tagsFreemarker - 创建多个子标签
【发布时间】:2016-04-25 05:30:00
【问题描述】:

给定一个结构如下的 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);

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

谢谢

【问题讨论】:

    标签: java xml freemarker


    【解决方案1】:

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

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

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

    quickstart guide(参见列表指令)还包含一个使用列表指令的示例。

    【讨论】:

    • 非常感谢!这是我不知道的点符号
    猜你喜欢
    • 1970-01-01
    • 2020-09-17
    • 2012-06-25
    • 2021-05-25
    • 2014-03-22
    • 1970-01-01
    • 2015-08-05
    • 1970-01-01
    相关资源
    最近更新 更多