Java 在Velocity中,如何使模板将null、null指针和索引越界异常呈现为空白?
我有一个velocity模板,其中有一行,如下所示:Java 在Velocity中,如何使模板将null、null指针和索引越界异常呈现为空白?,java,null,velocity,mustache,Java,Null,Velocity,Mustache,我有一个velocity模板,其中有一行,如下所示: $person.names.get(0).FullName 问题是,如果names为null,或者get(0)返回null,则会将其计算为 $person.names.get(0).FullName 相反,我希望打印不带引号的“”。有没有办法将Velocity配置为以这种方式工作?我不想把我做的每一件事都用一张纸包起来 #if (x != null && x.somethingElse != null ...)
$person.names.get(0).FullName
问题是,如果names
为null,或者get(0)
返回null,则会将其计算为
$person.names.get(0).FullName
相反,我希望打印不带引号的“”。有没有办法将Velocity配置为以这种方式工作?我不想把我做的每一件事都用一张纸包起来
#if (x != null && x.somethingElse != null ...)
...
#end
我一直在看,它似乎在默认情况下是这样工作的
VelocityContext context = new VelocityContext();
EventCartridge eventCartridge = new EventCartridge();
eventCartridge.addReferenceInsertionEventHandler(new ReferenceInsertionEventHandler() {
public Object referenceInsert(String reference, Object value) {
if (value == null) {
return StringUtils.EMPTY;
} else {
return value;
}
}
});
context.attachEventCartridge(eventCartridge);
索引超出范围时仍会有错误。我觉得这是无法避免的。如果有人能想出一个办法,我很乐意把它作为一个答案