只用速度

时间:2015-12-09 09:26:18

标签: java velocity template-engine

我发现无法用速度替换字符串的部分内容。

假设以下速度模板:

$test
something$test
$test.something

我想用字符串$test替换所有出现的TEST

因此我使用以下代码:

  VelocityContext context = new VelocityContext();
  context.put("test", "TEST");

这是结果,我期待:

TEST
somethingTEST
TEST.something

但我真正得到的是:

TEST
somethingTEST
$test.something

很明显,如果变量名称后面有一些文本,Velocity不会替换变量。

即使变量只是字符串的一部分,我该怎么做才能替换变量?

2 个答案:

答案 0 :(得分:3)

$test.something导致问题。

期望对象something内的变量test

使用${test}.something代替......

- 干杯,杰伊

答案 1 :(得分:0)

你在这里面临的问题不是“显然,如果变量名称之后有一些文字,Velocity不会替换变量。”

符号'$'用于表示任何行的开头。因此,您必须找到一种方法来在输入字符串中转义该符号,以便不考虑“$”的字面含义