Freemarker 将转义的 ${expression} 分配给变量

Freemarker assigning escaped ${expression} to a variable

我需要将转义的 ${expression} 分配给 Freemarker 中的变量

从问题here可以看出,我们可以通过这种方式转义$符号

${r"${expression}"}

这在 Freemarker 上下文之外完美运行,但在内部不起作用。我正在努力

<#assign x = "${r"${expression}"}">

但出现以下错误:

模板包含失败: 您不能在此处使用“${”,因为您已经处于 FreeMarker-expression-mode。因此,不用 ${myExpression},只需编写 myExpression。 (${...} 仅在需要静态文本的地方才需要,即在 FreeMarker 标签和 ${...}-s 之外。)

实现这个的方法是什么?提前致谢。

像这样:

<#assign x = r"${expression}">

我不得不花一些时间来找出以下场景来转义 ${expression} -

  • 在 Freemarker 作业中:

<#assign var = r"${expression}">

  • 在html属性中:

<a href="/user/${r"${expression}"}"> Some link </a>

  • 在 Freemarker 连接中:

<#assign x = "something&"+r"${expression}"/>