以速度转义美元符号

escaping dollar sign in velocity

我在velocity模板文件中有这样一个字符串:

<a id="superurl_${getItemid()}" href="http://example.com?$param1=345&$param2=abf&param3=${par3}">link1</a>

呈现为

<a id="superurl_1288" href="http://example.com?$param1=345&$param2=abf&param3=${par3}">link1</a>

但是,它应该呈现为

<a id="superurl_1288" href="http://example.com?$param1=345&$param2=abf&param3=zzz">link1</a>

如何修改源以使 ${par3} 由其值呈现而不被视为字符串的一部分?

您可以使用 #[[ .. ]]# 在 Velocity 中转义字符串。我认为在您的情况下,前面的 $ 可能与它们后面的内容相冲突。尝试以下操作:

<a id="superurl_${getItemid()}" href="#[[http://example.com$param1=345&$param2=abf&param3=]]#${par3}">link1</a>

此外,请确保您实际传递了一个名为 "par3" 的变量。 (这更有可能是解析不出来的原因?)

您可以像这样为美元符号设置一个变量

#set ( $d = "$")
<a id="superurl_${d}{getItemid()}" href="http://example.com?$param1=345&$param2=abf&param3=${par3}">link1</a>