Apache Velocity Quiet Reference Notation作为默认行为

时间:2011-06-06 16:48:42

标签: java velocity template-engine

当Velocity遇到未定义的引用时,其正常行为是输出引用的图像。例如,假设以下引用作为VTL模板的一部分出现“example:

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

是否可以配置默认行为,以便我仍然可以编写$email并且它隐式地是一个安静的符号?

1 个答案:

答案 0 :(得分:2)

是。有一个事件处理程序在找到无效引用时被调用。它被称为InvalidReferenceEventHandler。您将希望事件处理程序返回一个空字符串。

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

有关如何创建和注册事件处理程序的详细信息,请参阅Velocity开发人员指南。但简而言之,实现InvalidReferenceEventHandler,然后在设置VelocityEngine时包含此属性。

eventhandler.invalidreferences.class=com.something.youreventhandlerclass