7

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

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

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

4

1 回答 1

10

获取AjaxTarget是这样完成的:

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

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

于 2013-10-08T13:58:10.070 回答