我是Java Velocity模板的新手。我有一个字符串,它将有一些数字占位符/变量。我需要用相应的值替换它们。我怎么能在java中实现这个?
代码示例:
String templateString = "Replacing $0 with its value.";
VelocityContext context = new VelocityContext();
context.put("0", "Sample value");
StringWriter output = new StringWriter();
Velocity.evaluate(context, output, "log or null", templateString);
System.out.println("output: " + output);
上面的代码没有用" 示例值"替换$ 0变量,但是当我将一个字符串作为占位符/变量而不是$ 0时它起作用了。是否有任何变通方法可以用它的值替换$ 0?感谢你的帮助。
感谢。
答案 0 :(得分:1)
Velocity本身没有解决方法:解析器不允许引用名称以数字开头。
所以你必须预先处理模板,例如:
templateString = templateString.replaceAll("\\$(\\d+)","\\$_$1");
context.put("_0", "Sample value");
...