我正在我的 Play 应用程序中创建一个页面,讨论如何制作 Play 应用程序页面。(非常元:P)
我在 Play Framework 文档中找不到任何解释如何在模板中转义 Play 模板语法的内容。有谁知道如何做到这一点?
我正在我的 Play 应用程序中创建一个页面,讨论如何制作 Play 应用程序页面。(非常元:P)
我在 Play Framework 文档中找不到任何解释如何在模板中转义 Play 模板语法的内容。有谁知道如何做到这一点?
假设您想显示${name}
为 HTML 文本,而不是让 play 为变量名称呈现值,那么当让 play 在模板中编译 ${"$"} 时可以找到问题的答案。
Play 产生错误,说明:
illegal string body character after dollar sign; solution: either escape a literal dollar sign "\$5" or bracket the value expression "${5}"
这实际上意味着如果要显示${name}
,则应编写以下内容
${"\${name}"}
试试这个,它有效!
也许不是最优雅的解决方案,但是如果您将任何标签中的 $ 替换为 ascii 转义等效项,那么它就可以工作,例如,如果我想在屏幕上打印 ${user.name} ,那么我将输入的文本将是:
${user.name}
显然,模板语言用作触发器的任何其他特殊字符也是如此,例如 #、@ 和 %
为此想出了一个有趣的解决方案:
${"#{a @Controller.action()}${user.name}#{/a}"}
Play 自动将字符串的内容转义为 HTML 实体。这最终需要更少的额外代码,并且作为奖励,这意味着我可以将模板代码原样复制并粘贴到页面中。
我希望这对某人有帮助。:)