Java AjaxRequestTarget没有';Button.onSubmit()中不存在

Java AjaxRequestTarget没有';Button.onSubmit()中不存在,java,javascript,jquery,wicket,Java,Javascript,Jquery,Wicket,当我尝试进入方法Button.onSubmit()时,RequestCycle提供的AjaxRequestTarget显然是空的 我想用Ajax打开一个弹出窗口,但它会抛出任何NullPointerException。有没有办法在Wicket中的onsubmit()函数中使用AjaxRequestTarget显示弹出窗口 protected void onSubmit() { if (trainingmode()){ AjaxRequestTarget ta

当我尝试进入方法Button.onSubmit()时,RequestCycle提供的AjaxRequestTarget显然是空的

我想用Ajax打开一个弹出窗口,但它会抛出任何NullPointerException。有没有办法在Wicket中的onsubmit()函数中使用AjaxRequestTarget显示弹出窗口

  protected void onSubmit() {
       if (trainingmode()){
          AjaxRequestTarget target =  RequestCycle.get().find(AjaxRequestTarget.class);

          MessageDialog dialog = new MessageDialog("dialog", "Notice", "Decision Matches "  ,
             DialogButtons.OK_CANCEL, DialogIcon.WARN) {

         public void onClose(  AjaxRequestTarget target, DialogButton button) {

         }
     };
     System.out.println("2Chainz");
     dialog.open(target);
          }
}

我在dialog.open(target)中得到一个错误,它说: 原因:java.lang.NullPointerException 位于com.googlecode.wicket.jquery.ui.widget.dialog.MessageDialog.onOpen(MessageDialog.java:170) 在com.googlecode.wicket.jquery.ui.widget.dialog.AbstractDialog.open(A


我正在尝试弹出AjaxRequestTarget模式窗口,但是我无法从onsubmit()中访问AjaxRequestTarget。由于使用了错误的组件,因此引发了NullPointerException

使用or代替并实现onSubmit方法(AjaxRequestTarget)代替onSubmit方法()

说明:


仅在调用AJAX请求时可用。是仅在AJAX请求的情况下包含AjaxRequestTarget对象的线程本地单例,否则您正在使用的方法将重新返回null,因为它找不到任何AjaxRequestTarget对象。

要获取
AjaxRequestTarget
,您需要
AjaxButton
AjaxLink
AjaxSubmitLink

这些组件具有类似于
onClick(AjaxRequestTarget目标)
onSubmit(AjaxRequestTarget目标)
的方法,您可以使用这些方法


如果您处理的是输入字段,您可以添加
ajaxformcompanytupadingbehaviour
,这将为您提供
AjaxRequestTarget

您的问题有点糟糕,请提供更多详细信息。您的意思是打开诊断日志(例如表单上的“确认保存”)或者你是指Wicket模式窗口,它需要AjaxRequestTarget,而该AjaxRequestTarget在表单或SubmitLink的onSubmti()函数中不可用?@MartinStrejc我是指尽管AjaxRequestTarget不可用,但后者仍在使用模式窗口。请告诉我你正在扩展的类,这并不明显,因为onSubmit()是是在类按钮和窗体上,解决方案是不同的。