【问题标题】:How to read a template to get some properties defined in Freemarker template如何读取模板以获取 Freemarker 模板中定义的一些属性
【发布时间】:2018-03-05 13:32:53
【问题描述】:

我正在使用 Freemarker 模板从 url 读取模板,然后在发送之前替换我的电子邮件中的某些部分。 有什么方法可以读取模板并获得价值。例如,模板中的某处有一个属性列表,我需要在发送电子邮件之前对其进行处理。此外,我将在处理模板后删除此部分。这部分我可以通过将 showSection 的 datamodel 值设置为 false 来解决。

<div class="prop">
    <#if showSection == true>
        <key> <value>
        <key> <value>
        <key> <value>
    </#if>
</div>

我查看了文档,但找不到从模板中获取部分的方法。

【问题讨论】:

    标签: spring-mvc freemarker


    【解决方案1】:

    没有实际的方法可以做到这一点。 “不实用”是指理论上你可以自己解析模板并提取该信息,甚至可以利用 FreeMarker 的内部 AST API(它仍然不解析 XML 部分),但这会很丑陋而且很多工作。

    另外,尤其是当您在模板生成输出时从模板中删除该部分(并且模板的目的是生成输出),您不能只将该信息存储在模板之外吗?

    如果您必须将可提取数据放入模板中,那么最接近的方法是 &lt;#ftl attributes={"myProps": { "a": 1, "b", 2 }} &gt; 然后 template.getCustomAttribute("myProps") 得到 Map

    【讨论】:

    猜你喜欢
    • 2018-06-28
    • 2018-06-07
    • 1970-01-01
    • 2020-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-24
    相关资源
    最近更新 更多