传递给@Messages的Html参数在Play Framework中被转义



我想将HTML文本作为参数传递给Twirl模板中的消息,但当模板被呈现时,HTML就会被转义。例如,如果我的messages文件具有:

my.message=Click {0} to proceed

我的template.scala.html

<p>@Messages("my.message", Html("<a href="/">here</a>"))</p>

当我在浏览器中打开页面时,<a href="/"here</a>部分被转义,因此我没有可点击的链接。有什么办法做到这一点吗?

您应该将Html的使用转移到外部,或者将其保留在两个位置。

@Html(Messages("my.message", "<a href="/">here</a>"))

问题是内部Html在传递到Messages时被转换为String。然后模板编译器看到Messages返回一个String,所以它对其进行转义。在外部添加另一个Html将防止这种情况发生。

最新更新