Apache Velocity 中的错误或隐藏功能
Bug or hidden feature in Apache Velocity
我使用 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{;
我试图在文档中找到有关此类行为的信息,但失败了。有人知道那里发生了什么吗?
这绝对是一个错误。我在代码库中修复了它,但是在等待下一个版本(可能需要一定时间)时,以下模板将保持 perl 模板文件的可维护性并避免错误:
my $value = $map{ key };
只需要前面的space,第二个是为了美观。
我使用 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{;
我试图在文档中找到有关此类行为的信息,但失败了。有人知道那里发生了什么吗?
这绝对是一个错误。我在代码库中修复了它,但是在等待下一个版本(可能需要一定时间)时,以下模板将保持 perl 模板文件的可维护性并避免错误:
my $value = $map{ key };
只需要前面的space,第二个是为了美观。