据我了解,Zone 是一个组件,我可以处理它的事件。
所以我键入以下代码:
@InjectComponent
private Zone zoneSample;
@OnEvent(component = "zoneSample")
private void zoneEvent() {
System.out.println(String.format("Zone client id: %s", zoneSample.getClientId()));
}
没有异常被抛出,所以 Zone ID 设置正确。但是事件没有被触发! 这个事件处理方法不应该匹配区域的所有事件吗?
我预计它基本上会在渲染区域之前、期间和之后触发,因为我需要查看是否可以获得生成的区域的客户端 ID,以便稍后在使用 AjaxResponseRenderer时使用它来显示该区域强>类。
最佳答案
区域不触发任何事件。在这种情况下,有一个方便的 mixin 可以帮助您,即 RenderNotification mixin。 .
它提供了两个事件:beginRender 和 afterRender,我想这就是你所需要的。将 mixin 应用到区域后,处理事件的代码将如下所示:
void onBeginRenderFromZoneSample(MarkupWriter writer)
{
...
}
void onAfterRenderFromZoneSample(MarkupWriter writer)
{
...
}
关于java - (5.4-beta-6) 未调用区域事件处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25213133/