我发现无法用速度替换字符串的部分内容。
假设以下速度模板:
$test
something$test
$test.something
我想用字符串$test
替换所有出现的TEST
。
因此我使用以下代码:
VelocityContext context = new VelocityContext();
context.put("test", "TEST");
这是结果,我期待:
TEST
somethingTEST
TEST.something
但我真正得到的是:
TEST
somethingTEST
$test.something
很明显,如果变量名称后面有一些文本,Velocity不会替换变量。
即使变量只是字符串的一部分,我该怎么做才能替换变量?
答案 0 :(得分:3)
$test.something
导致问题。
期望对象something
内的变量test
。
使用${test}.something
代替......
- 干杯,杰伊
答案 1 :(得分:0)
你在这里面临的问题不是“显然,如果变量名称之后有一些文字,Velocity不会替换变量。”
符号'$'用于表示任何行的开头。因此,您必须找到一种方法来在输入字符串中转义该符号,以便不考虑“$”的字面含义