4

我正在我的 Play 应用程序中创建一个页面,讨论如何制作 Play 应用程序页面。(非常元:P)

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

4

3 回答 3

8

假设您想显示${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}"}

试试这个,它有效!

于 2012-05-23T18:47:32.880 回答
5

也许不是最优雅的解决方案,但是如果您将任何标签中的 $ 替换为 ascii 转义等效项,那么它就可以工作,例如,如果我想在屏幕上打印 ${user.name} ,那么我将输入的文本将是:

${user.name}

显然,模板语言用作触发器的任何其他特殊字符也是如此,例如 #、@ 和 %

于 2012-02-10T11:01:31.547 回答
1

为此想出了一个有趣的解决方案:

${"#{a @Controller.action()}${user.name}#{/a}"}

Play 自动将字符串的内容转义为 HTML 实体。这最终需要更少的额外代码,并且作为奖励,这意味着我可以将模板代码原样复制并粘贴到页面中。

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

于 2012-02-16T06:57:50.530 回答