我正在Play应用中制作一个页面,讨论如何制作Play应用页面。 (非常meta:P)
我在Play Framework文档中找不到任何解释如何在模板中转义Play模板语法的内容。有谁知道怎么做?
答案 0 :(得分:7)
假设你想要将${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}"}
试试这个,它有效!
答案 1 :(得分:4)
也许不是最优雅的解决方案,但是如果你用ascii转义的等价物替换你的任何标签中的$,那么它可以工作,例如,如果我想在屏幕上打印$ {user.name}那么文本我输入将是:
${user.name}
显然,模板语言用作触发器的任何其他特殊字符也是如此,例如#,@和%
答案 2 :(得分:1)
为此提出了一个有趣的解决方案:
${"#{a @Controller.action()}${user.name}#{/a}"}
Play会自动将字符串的内容转义为HTML实体。这最终需要更少的额外代码,作为奖励,这意味着我可以复制&将模板代码按原样粘贴到页面中。
我希望这对某人有帮助。 :)