【发布时间】:2021-10-24 00:56:57
【问题描述】:
我需要绑定几个字符串和几个 html sn-ps。输出 HTML 应包含数据以及 HTML(设计中)。
【问题讨论】:
标签: java html html-email freemarker
我需要绑定几个字符串和几个 html sn-ps。输出 HTML 应包含数据以及 HTML(设计中)。
【问题讨论】:
标签: java html html-email freemarker
假设您的数据模型是Map<String, Object>,称为model(当然也可以是带有getter 的bean)。然后你应该像这样填充模式:
model.put("htmlSnippet", HTMLOutputFormat.INSTANCE.fromMarkup("This is <em>HTML</em>!");
model.put("plainTextSnippet", "This is <em>not</em> HTML!");
在上面,htmlSnippet 将是一个 TemplateHTMLOutputModel 对象,而不是 String,因此 FreeMarker 会知道它不能被 HTML 转义。
现在,如果您的模板是这样的,并且您启用了 HTML 自动转义(通常通过提供 ftlh 文件扩展名,或使用 <#ftl outputFormat='HTML'> 标头,或在 Configuration 中的其他方式完成):
${htmlSnippet}
${plainTextSnippet}
那么输出的 HTML 源代码将是这样的:
This is <em>HTML</em>!
This is <em>not</em> HTML!
【讨论】:
您可以使用 StringBuilder 将您的 email-html 作为字符串。
【讨论】: