man*_*nub 5 playframework twirl
我想将 HTML 文本作为参数传递给 Twirl 模板中的消息,但是当渲染模板时,HTML 会被转义。例如,如果我的messages文件有:
my.message=Click {0} to proceed
Run Code Online (Sandbox Code Playgroud)
我的template.scala.html有
<p>@Messages("my.message", Html("<a href="/">here</a>"))</p>
Run Code Online (Sandbox Code Playgroud)
当我在浏览器中打开页面时,该<a href="/"here</a>部分会被转义,因此我没有可点击的链接。有什么办法可以实现这一点吗?
您应该将您的使用移到Html外部,或将其保留在两个地方。
@Html(Messages("my.message", "<a href=\"/\">here</a>"))
Run Code Online (Sandbox Code Playgroud)
问题是当传递到 时,内部Html被转换为 a 。然后模板编译器发现返回 a ,因此对其进行转义。在外面添加另一个可以防止这种情况。StringMessagesMessagesStringHtml