2013-10-25 55 views
1

速度有兩種形式的參考:$foo(默認表示法)和$!foo(「安靜」表示法)。如果'foo'無法在上下文中解析,則在第一種情況下,您只需在輸出中獲取$ foo渲染。在後一種情況下,它將呈現爲空字符串。速度中的「錯誤」參考符號

對於第三種情況,是否存在類似的簡潔語法,當'foo'找不到時,會簡單地拋出NPE?我們有類似$a.b.c的東西,如果'a''b'丟失,但希望沒有無故障#if($a && $a.b && $a.b.c) ... #end檢查混亂的模板,我們想失敗。

或者,可以修改$!的行爲,還是可以引入新術語(如$~)?

回答

1

Strict Reference Mode,在Velocity 1.6中引入,可以做你想要的東西。而不是具有第三個參考表單,它會更改$var的工作方式,以便在處理變量時(以及可能的鏈式方法調用)遇到null,將拋出異常而不是打印文字輸入語法。

可以在Velocity中使用自己的$~語法(只要給予足夠的時間和精力,任何事情都是可能的),但並不容易。您必須大量修補源代碼,從語法定義到如何處理引用。