2015-04-22 64 views
0

我試圖讓wicket在單擊保存按鈕後顯示一個信息對話框,它調用一個無法訪問AjaxRequestTarget目標的onsubmit。這裏是代碼片段檢票口onsubmit信息對話框

if (trainingmode() && !recordDecision.equalsIgnoreCase("Primary")) {    
    if (trainingEvalService.compareDecisions(recordDecision, recordSet.getRecordSetId())) {     
     System.out.println("Validity matchesMaserati: " + trainingEvalService.getTrainingEval().getActual_validity_decision_comment()); 
     // Dialog associated with save button 
     dialog = new MessageDialog("dialog", "Notice", "Decision Matches " + trainingEvalService.getTrainingEval().getActual_validity_decision_comment() , DialogButtons.OK_CANCEL, DialogIcon.WARN) { 
      public void onClose(AjaxRequestTarget target, DialogButton button) { 
      } 
     }; 

     dialog.open(target) // breaks here without reference to AjaxTarget   
    } else {     
    }     
} 

如何獲得對當前AjaxRequestTarget的引用?

+1

那麼問題是什麼? –

+0

我假設你正在尋找RequestCycle.get()。find(AjaxRequestTarget.class) – svenmeier

+0

@svenmeir是你接近我試圖做到這一點下面,但得到了一個錯誤引起:java.lang.NullPointerException dialog = new MessageDialog( 「dialog」,「Notice」,「Decision Matches」+ trainingEvalService.getTrainingEval()。getActual_validity_decision_comment(),DialogBu​​ttons.OK_CANCEL,DialogIcon.WARN){public void onClose(AjaxRequestTarget target,DialogBu​​tton button){ } } dialog.open(RequestCycle.get()。find(AjaxRequestTarget.class)); – Toosmooth

回答

0

兩種方式:

  1. 如果你正在做的表單提交通過一個鏈接,那麼你可以添加一個SimpleAttributeModifire它。

例子:

yourLink.add(new SimpleAttributeModifier("onclick","alert('information')")); 

這會顯示一個JavaScript的信息,可以在其上顯示的信息。

注: 如果你不是從鏈接提交,那麼你可以做的是通過將在SubmitLink的的onsubmit()提交的代碼。

  1. 您也可以爲此使用ModalWidow,但爲此您需要使用Ajax提交。 您可以使用AjaxSubmitLink。 您可以從這裏找到ModalWindow代碼: http://www.wicket-library.com/wicket-examples-6.0.x/ajax/modal-window;jsessionid=2E08EC28B0C0A1AD3F8399628F048003?0