数日前に次の問題に遭遇しました: 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 を保持しており、後で別のパネルでトリガーされたイベントを識別するために使用されます。
2 番目のパネルでは、次の方法を使用しています。
@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)));
コードブロック 2 の「target.add(this)」で Nullpointer 例外が発生する
もちろんヌルです。 お願いはありません。
問題は、2 番目のコードブロックをトリガーするにはどうすればよいかということです。パネル 2 のみをテストするため、パネル 1 へのアクセスは許可されません。つまり、dataTable の行をクリックして、パネル 1 でイベントをトリガーすることはできません。
編集:ウィケット6.18を使用しています