如何阅读模板以获取Freemarker模板中定义的一些属性

问题描述 投票:0回答:1

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

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

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

spring-mvc freemarker
1个回答
1
投票

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

此外,特别是当您在生成输出时从模板中删除该部分(并且模板的目的是生成输出)时,您是否只能将该信息存储在模板外部?

如果你必须将可提取的数据放入模板中,那么最接近的东西就像<#ftl attributes={"myProps": { "a": 1, "b", 2 }} >然后template.getCustomAttribute("myProps")那样得到Map

© www.soinside.com 2019 - 2024. All rights reserved.