逃避美元符号的速度

时间:2015-01-12 15:13:23

标签: java string parameters 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}由其值呈现并且不被视为字符串的一部分?

2 个答案:

答案 0 :(得分:5)

您可以使用#[[ .. ]]#来转义Velocity中的字符串。我认为在你的情况下,前面的$可能与他们之后发生的事情相冲突。请尝试以下方法:

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

另外,请确保实际传递名为&#34; par3&#34;的变量。 (这更可能是它未被解析的原因?)

答案 1 :(得分:1)

您可以像这样设置美元符号的变量

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