Java Apache Velocity安静引用表示法作为默认行为

Java Apache Velocity安静引用表示法作为默认行为,java,velocity,template-engine,Java,Velocity,Template Engine,当Velocity遇到未定义的引用时,其正常行为是输出引用的图像。例如,假设以下引用作为VTL模板“示例”的一部分出现: <input type="text" name="email" value="$!email"/> 是否可以配置默认行为,以便我仍然可以编写$email,并且它隐式地是一个安静的表示法?是的。有一个事件处理程序在发现无效引用时被调用。它被称为InvalidReferenceEventHandler。您希望事件处理程序返回一个空字符串 public Objec

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

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


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

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

public Object invalidGetMethod( Context context, 
                                    String reference, 
                                    Object object, 
                                    String property, 
                                    Info info)
{
    return "";
}
有关如何创建和注册事件处理程序的详细信息,请参阅《Velocity开发人员指南》。但简而言之,请实现InvalidReferenceEventHandler,然后在设置VelocityEngine时包含此属性

eventhandler.invalidreferences.class=com.something.youreventhandlerclass
这里有一个动态的方式