2011-06-06 89 views
3

當Velocity遇到未定義的引用時,其正常行爲是輸出引用的圖像。例如,假設下面的引用出現作爲一個VTL模板的一部分」的例子:Apache Velocity Quiet Reference Notation默認行爲

<input type="text" name="email" value="$!email"/> 

是否可以配置默認的行爲,所以我仍然可以寫$email,它是隱含一個安靜的符號

回答

2

是的,有一個事件處理程序時的無效引用找到調用它。這就是所謂的InvalidReferenceEventHandler,你會希望有事件處理程序返回一個空字符串。

public Object invalidGetMethod(Context context, 
            String reference, 
            Object object, 
            String property, 
            Info info) 
{ 
    return ""; 
} 

諮詢發展速度關於如何創建和註冊事件處理程序的詳細信息,請參閱er's Guide。但簡而言之,實現InvalidReferenceEventHandler,然後在設置VelocityEngine時包含此屬性。

eventhandler.invalidreferences.class=com.something.youreventhandlerclass 
+0

這裏以動態的方式 http://velocity.apache.org/engine/devel/developer-guide.html#Configuring_Event_Handlers – caeycae 2011-08-19 13:02:07