2015-06-01 16 views
0

在wicket 1.4中我用來清除由特定形式的onValidate()方法引起的錯誤。在遷移到wicket之後不幸的是,6個方法執行順序改變了,或者我的代碼寫得不好。所以我有AJAX按鈕,與此類似:如何清除由onValidate()引起的類(表單)相關的錯誤?

final AjaxFallbackButton submitButton = new AjaxFallbackButton(PREFIX + ".submit", new I18nModel(title), panelForm) { 

     @Override 
     protected void onSubmit(AjaxRequestTarget target, Form<?> form) { 
      // submit method 
     } 

     @Override 
     protected void onError(AjaxRequestTarget target, Form<?> form) { 
      addPanel.setProcessingEnabled(true); 
     } 
    }; 

    submitButton.add(new AjaxFormSubmitBehavior(panelForm, "onclick"){ 
     @Override 
     protected void onEvent(AjaxRequestTarget target) { 
      addPanel.setProcessingEnabled(false); 
      super.onEvent(target); 
     } 
    }); 

addPanel在類指向包含表單,我想清楚了錯誤。因此,在這個班我加入的形式是這樣的:

panelForm = new Form<B>("panelForm", new PrefixedCompoundModel<B>(getDefaultModelObject(), PREFIX)) { 
     @Override 
     protected void onValidate() { 
      super.onValidate(); 
      if (!processingEnabled) { 
       Session.get().getFeedbackMessages().clear(new ContainerFeedbackMessageFilter(this)); 
      }        
     } 

     @Override 
     protected void onError() { 
      UiUtils.refresh(panelForm); 
     } 
    }; 

變量processingEnabled默認爲true。我只是在上面點擊ajax按鈕時才改變它。它習慣先去我的行爲,然後再去上面的表單中的onValidate。現在它是:onValidate -> onError(panelForm) -> behavior -> onValidate -> onError(panelForm) -> onError(button)。我想在onValidate之前傳遞processingEnabled參數或在onError方法中清除與此表單有關的所有錯誤。感謝您的反饋。

回答

相關問題