如何在Wicket的onBeforeRender()方法中获取AjaxRequestTarget?

时间:2013-10-08 11:46:58

标签: wicket wicket-1.6

我有一个Ajax事件触发了各种Wicket面板的重绘。有些面板在onBeforeRender()方法中有自己的额外计算。如果有错误,我想将其显示给用户。但是我无法将FeedbackPanel添加到AjaxRequestTarget中,因为在重新绘制的面板中我不再能够访问它。

有没有办法在Wicket组件的onBeforeRender()中获取AjaxRequestTarget?一旦第一个组件已经处于onBeforeRender()状态,是否甚至可以向Ajax目标添加其他组件?

如果只需要重绘的面板可以判断是否存在错误,是否有更好的方法将FeedbackPanel添加到Ajax目标?

1 个答案:

答案 0 :(得分:10)

获取AjaxTarget的方式如下:

AjaxRequestTarget target = requestCycle.find(AjaxRequestTarget.class);

不幸的是,就像我们预期的那样,一旦我处于渲染阶段,我无法向目标添加组件。但是Wicket为方法onTargetRespond(AjaxRequestTarget target)提供了接口ITargetRespondListener。在这里,我可以添加任何我想要的目标。

相关问题