如何在模板中转义模板语法

时间:2012-02-09 23:36:30

标签: playframework playframework-1.x

我正在Play应用中制作一个页面,讨论如何制作Play应用页面。 (非常meta:P)

我在Play Framework文档中找不到任何解释如何在模板中转义Play模板语法的内容。有谁知道怎么做?

3 个答案:

答案 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实体。这最终需要更少的额外代码,作为奖励,这意味着我可以复制&将模板代码按原样粘贴到页面中。

我希望这对某人有帮助。 :)