gpt4 book ai didi

dictionary - 如何使用 map 作为参数调用 Freemarker 宏?

转载 作者:行者123 更新时间:2023-12-04 05:02:00 29 4
gpt4 key购买 nike

我一直在四处闲逛,但找不到任何文档或示例代码。

简介:

我有一个包含此键/值映射的 ftl 页面:

  • roomType.description["ES"] = "texto"
  • roomType.description["EN"] = "一些文字"
  • roomType.description["PT"] = "texto"

  • 问题:

    如何将 map 作为参数传递给 freemarker 宏?

    示例代码:

    宏声明
    <#macro descriptionMacro firstLang descriptionText>
    <#-- SOME CODE -->
    <textarea>
    <#if descriptionText[firstLang]??>
    ${descriptionText[firstLang]?trim}
    </#if>
    </textarea>
    <#-- SOME OTHER CODE -->
    </#macro>

    宏调用(不工作)
    <@descriptionMacro firstLang="es" descriptionText=roomType.description/>

    最佳答案

    我在您的代码中看到的唯一问题是 map 中的键是大写的(“EN”、“ES”、“PT”),并且您尝试使用小写键“es”访问模板中的值”。

    除此之外,我没有看到使用 Map 的任何限制。作为参数。

    例如给出这张 map :

      Map<String, String> description = new HashMap<>();
    description.put("en", "Some text");
    description.put("es", "Testo");
    description.put("fr", "Texte");

    Map<String, Object> data = newHashMap();
    data.put("description", description);

    Template template = getTemplate();
    Writer out = new StringWriter();
    template.process(data, out);

    这个模板:
    <#macro printDescription lang data>
    Description = ${data[lang]}
    </#macro>
    <@printDescription lang="es" data=description />

    输出是:
    Description = Testo

    关于dictionary - 如何使用 map 作为参数调用 Freemarker 宏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16042706/

    29 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com