0

数日前に次の問題に遭遇しました: 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を使用しています

4

1 に答える 1