【问题标题】:"Error" reference notation in VelocityVelocity 中的“错误”参考符号
【发布时间】:2013-11-05 04:46:14
【问题描述】:

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

对于第三种情况是否有类似的简洁语法,当找不到'foo' 时会简单地抛出 NPE?我们有类似$a.b.c 的东西,如果缺少'a''b',我们希望它失败,但希望没有无偿的#if($a && $a.b && $a.b.c) ... #end 检查使模板到处乱七八糟。

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

【问题讨论】:

    标签: null velocity


    【解决方案1】:

    Strict Reference Mode,在 Velocity 1.6 中引入,可以执行您想要的操作。它没有第三个引用形式,而是改变了$var 的工作方式,因此如果在处理变量(以及可能的链式方法调用)时遇到null,则会引发异常,而不是打印回文字输入语法。

    可以在 Velocity 中添加自己的 $~ 语法(只要有足够的时间和精力,一切皆有可能),但并不容易。您必须对源代码进行大量修补,从语法定义到如何处理引用。

    【讨论】:

      猜你喜欢
      • 2016-01-10
      • 1970-01-01
      • 1970-01-01
      • 2012-11-04
      • 2010-11-26
      • 1970-01-01
      • 1970-01-01
      • 2011-07-06
      • 2017-11-14
      相关资源
      最近更新 更多