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

时间:2015-02-18 15:49:24

标签: playframework twirl

我希望将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>部分被转义,因此我没有可点击的链接。有没有办法实现这个目标?

1 个答案:

答案 0 :(得分:4)

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

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

问题是内部Html在传递到String时会转换为Messages。然后模板编译器看到Messages返回String,因此它会逃脱它。在外面添加另一个Html将阻止这种情况。