gpt4 book ai didi

java - 在 Velocity 中,如何使模板将空值、空指针和索引越界异常呈现为空白?

转载 作者:行者123 更新时间:2023-11-29 05:40:18 24 4
gpt4 key购买 nike

我有一个速度模板,里面有这样一行:

$person.names.get(0).FullName

问题是,如果 names 为 null,或者 get(0) 返回 null,这将被评估为

$person.names.get(0).FullName

相反,我希望它打印不带引号的“”。有没有办法配置 Velocity 以这种方式工作?我不想用

来包装我所做的每一件事
#if (x != null && x.somethingElse != null ...) 
...
#end

我一直在看mustache它似乎默认以这种方式工作。

最佳答案

    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);

索引越界仍然会报错。我有一种感觉,没有办法避免这种情况。如果有人能想出办法,我会很乐意将其标记为答案。

关于java - 在 Velocity 中,如何使模板将空值、空指针和索引越界异常呈现为空白?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17868334/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com