ftl 模板中的 escapeHtml="false" 引发参数类型不匹配

Posted

技术标签:

【中文标题】ftl 模板中的 escapeHtml="false" 引发参数类型不匹配【英文标题】:escapeHtml="false" in ftl template throws argument type mismatch 【发布时间】:2015-09-20 00:37:54 【问题描述】:

这是代码。

<@s.property value="content" escapehtml="false"/>

从数据库中检索变量内容并包含一个 HTML 片段。如果我删除 escapeHtml 属性,则成功检索内容并将其写入屏幕。内容包含两个图像,并且没有escapeHtml 属性,屏幕将html 内容打印为字符串表示形式。但我想以 HTML 格式查看图像。所以我使用escapeHtml="false" 并从日志中看到抛出异常。

原因:java.lang.IllegalArgumentException:参数类型不匹配

如何以 HTML 格式查看内容?

【问题讨论】:

您使用的是哪个版本的 S2?老版本没有escapeHtml属性,但是有escape属性。 【参考方案1】:

我在 jsp 中使用了相同的代码。 jsp中的代码是: &lt;s:property value="content" escapeHtml="false"/&gt;。那工作正常。我猜这是一个 freemarker 问题。

【讨论】:

【参考方案2】:

当然应该是escapeHtml=false,不带引号。如果你写"false",那是 FreeMarker 中的一个字符串。 (顺便说一句,2.3.22 在错误消息中对此进行了解释,因此您肯定没有使用最新版本。)

【讨论】:

以上是关于ftl 模板中的 escapeHtml="false" 引发参数类型不匹配的主要内容,如果未能解决你的问题,请参考以下文章

freemarker设置模板路径问题

.ftl文件 是啥文件

jQuery escapeHTML

ftl文件 是啥文件

设置:ftl模板文件编辑器

Freemarker 模板从路径 WEB-INF\ftl\ 访问 Freemarker 文件