gpt4 book ai didi

速度事件处理器

转载 作者:行者123 更新时间:2023-12-01 11:55:38 25 4
gpt4 key购买 nike

在 velocity 中,当你执行 $object.variable 时,如果它找不到 getter 函数 访问它或 getter 返回 null。它只会在页面上明确显示 $object.variable

我知道有一个安静的引用,但我不想添加!签署数千个变量。

我已经尝试过 InvalidReferenceEventHandler、NullValueHandler 它们都没有被调用。

我想知道是否有特定类型的事件处理程序。

非常感谢

最佳答案

以上似乎也是一个有效的选择。然而,这是另一种选择:

public class AppSpecificInvalidReferenceEventHandler implements 
InvalidReferenceEventHandler
{

private static final Logger LOGGER =
Logger.getLogger(AppSpecificInvalidReferenceEventHandler.class);

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

@Override
public boolean invalidSetMethod(Context context, String leftreference,
String rightreference, Info info)
{
reportInvalidReference(leftreference, info);
return false;
}

@Override
public Object invalidMethod(Context context, String reference, Object object,
String method, Info info)
{
if (reference == null) {
reportInvalidReference(object.getClass().getName() + "." + method, info);
} else {
reportInvalidReference(reference, info);
}
return "";
}

private void reportInvalidReference(String reference, Info info)
{
LOGGER.info("REFRERENCE: " + reference + " Info <" + info + ">");
}
}

您还需要将以下内容添加到您的 velocity.properties 文件中:

eventhandler.invalidreferences.class=path.to.package.AppSpecificInvalidReferenceEventHandler,org.apache.velocity.app.event.implement.ReportInvalidReferences

您可能会对结果感到惊讶,因此可能需要根据您的需要进行微调。

关于速度事件处理器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7649289/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com