Html 传递给@Messages 的参数在 Play Framework 中被转义
Html parameter passed to @Messages gets escaped in 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>
部分被转义,因此我没有可点击的 link。有什么办法可以实现吗?
您应该将 Html
的使用移到外面,或者将其保留在两个地方。
@Html(Messages("my.message", "<a href=\"/\">here</a>"))
问题是内部 Html
在传入 Messages
时被转换为 String
。然后模板编译器看到 Messages
returns a String
,所以它转义它。在外面添加另一个 Html
将防止这种情况发生。
我想将 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>
部分被转义,因此我没有可点击的 link。有什么办法可以实现吗?
您应该将 Html
的使用移到外面,或者将其保留在两个地方。
@Html(Messages("my.message", "<a href=\"/\">here</a>"))
问题是内部 Html
在传入 Messages
时被转换为 String
。然后模板编译器看到 Messages
returns a String
,所以它转义它。在外面添加另一个 Html
将防止这种情况发生。