几天前我遇到了以下问题:我有一个带有 2 个面板的 Page.class。例如,面板 1 可以单击数据表。
@Override
protected void onRowClick(final AjaxRequestTarget target, final Item<Template> item) {
this.send(this.getPage(), Broadcast.BREADTH, new CustomAjaxEvent(target));
}
自定义 Ajax 事件持有 RequestTarget,稍后将用于在另一个面板中识别触发的事件。
现在在我的第二个面板中,我有以下方法:
@Override
public void onEvent(IEvent<?> event) {
Object payload = event.getPayload();
if(payload instanceof CustomAjaxEvent){
((CustomAjaxEvent)payload).target.add(this)
}
super.onEvent(event);
}
现在我要测试这些东西..(以下代码在 testClass 中)
panel.send(panel.getPage(),
Broadcast.BREADTH,
new CustomAjaxEvent(RequestCycle.get().find(AjaxRequestTarget.class)));
Nullpointer 异常发生在代码块 2 中的“target.add(this)”上
当然它是空的..没有请求。
问题是如何触发第二个代码块?没有给出对面板 1 的访问权限,因为我只测试面板 2。这意味着,我无法单击 dataTable 中的一行并让面板 1 触发事件。
编辑:我正在使用 wicket 6.18