Velocity中的“错误”参考符号

时间:2013-10-25 22:38:46

标签: null velocity

Velocity有两种形式的引用:$foo(默认表示法)和$!foo(“安静”表示法)。如果在上下文中无法解析'foo',则在第一种情况下,您将在输出中获得$ foo。在后一种情况下,它将呈现为空字符串。

第三种情况是否有类似的简洁语法,只有在无法找到'foo'时才会抛出NPE?我们有$a.b.c之类的内容,如果'a''b'丢失,我们希望失败,但希望没有免费#if($a && $a.b && $a.b.c) ... #end检查整个地方的模板。< / p>

或者,可以修改$!的行为,还是可以引入新术语(如$~)?

1 个答案:

答案 0 :(得分:1)

在Velocity 1.6中引入的

Strict Reference Mode做了你想要的事情。它不改变第三个引用形式,而是改变$var的工作方式,这样如果在处理变量时遇到null(以及可能的链接方法调用),则抛出异常而不是打印文字输入语法回来。

可以将自己的$~语法放在Velocity中(只要有足够的时间和精力,任何事都可以),但不容易。你必须大量修补源代码,从语法定义到如何处理引用。

相关问题