我使用Apache Velocity 1.7进行Perl代码生成。并且有典型的Perl语法用于通过键($map{key}
)从哈希访问值,这使得Velocity变得疯狂。以下是显示我的问题的代码:
String template = "#$language hash usage example:\n" +
"my $value = $map{key};";
Map<String, Object> context = new HashMap<String, Object>();
context.put("language", "Perl");
VelocityContext cntx = new VelocityContext(context);
StringWriter output = new StringWriter();
Velocity.evaluate(cntx, output, "Template1", template);
System.out.println(output.toString());
以下是我在输出中的内容:
#Perl hash usage example:
my $value = $map{;
我试图在文档中找到有关此类行为的内容,但失败了。有没有人知道那里发生了什么?
答案 0 :(得分:1)
这绝对是一个错误。我在代码库中修复它,但在等待下一个版本(可能需要一段时间)时,以下模板将保持perl模板文件的可维护性并避免错误:
my $value = $map{ key };
只有前面的空间是必要的,第二个空间是出于审美目的。