我正在使用Freemarker模板从网址中读取模板,然后在发送之前替换我的电子邮件中的某些部分。 有没有办法阅读模板并获得价值。例如,模板中的某个位置有一个属性列表,我需要在发送之前处理该电子邮件。此外,我将在处理模板后删除此部分。这部分我可以通过将showSection的datamodel值设置为false来解决。
<div class="prop">
<#if showSection == true>
<key> <value>
<key> <value>
<key> <value>
</#if>
</div>
我查看了文档,但无法找到从模板中获取部分的方法。
答案 0 :(得分:1)
没有切实可行的方法。通过&#34;没有实践&#34;我的意思是理论上你可以自己解析模板并提取这些信息,甚至可以利用FreeMarker的内部AST API(它仍然没有解析XML部分),但那将是丑陋和大量的工作。
此外,特别是当您在生成输出时从模板中删除该部分(并且模板的目的是生成输出)时,您是否只能将该信息存储在模板之外?
如果您必须将可提取的数据放入模板中,那么最接近的是<#ftl attributes={"myProps": { "a": 1, "b", 2 }} >
,然后是template.getCustomAttribute("myProps")
来获取Map
。