(5.4-beta-6)未调用区域事件处理程序

时间:2014-08-08 22:26:34

标签: java tapestry

据我了解,区域是一个组件,我可以处理它的事件。

所以我输入以下代码:

@InjectComponent
private Zone zoneSample;
@OnEvent(component = "zoneSample")
private void zoneEvent() {
    System.out.println(String.format("Zone client id: %s", zoneSample.getClientId()));
}

不会抛出任何异常,因此正确设置了区域 ID。但事件并没有被解雇! 此事件处理方法不应该匹配区域的所有事件吗?

我预计它会在呈现区域之前,之后和之后被解雇,因为我需要查看是否可以获取生成区域的client-id,以便稍后使用 AjaxResponseRenderer来显示此区域上课。

1 个答案:

答案 0 :(得分:4)

区域没有发生任何事件。在这种情况下,有一个方便的mixin可以帮助你RenderNotification mixin

它提供了两个事件:beginRender和afterRender,我认为这就是你所需要的。将mixin应用于区域后,处理事件的代码如下所示:

void onBeginRenderFromZoneSample(MarkupWriter writer)
{
    ...
}

void onAfterRenderFromZoneSample(MarkupWriter writer)
{
    ...
}