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

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

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

最佳答案

获取 AjaxTarget 是这样完成的:

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

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

10-08 19:05