【问题标题】:How do I bind string which is HTML in FreeTextMarker?如何在 FreeTextMarker 中绑定 HTML 字符串?
【发布时间】:2021-10-24 00:56:57
【问题描述】:

我需要绑定几个字符串和几个 html sn-ps。输出 HTML 应包含数据以及 HTML(设计中)。

【问题讨论】:

    标签: java html html-email freemarker


    【解决方案1】:

    假设您的数据模型是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 文件扩展名,或使用 &lt;#ftl outputFormat='HTML'&gt; 标头,或在 Configuration 中的其他方式完成):

    ${htmlSnippet}
    ${plainTextSnippet}
    

    那么输出的 HTML 源代码将是这样的:

    This is <em>HTML</em>!
    This is &lt;em&gt;not&lt;/em&gt; HTML!
    

    【讨论】:

      【解决方案2】:

      您可以使用 StringBuilder 将您的 email-html 作为字符串。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-11-06
        • 2014-02-02
        • 1970-01-01
        • 2013-03-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-08-24
        相关资源
        最近更新 更多