wicket 7.x를 사용합니다. 두 개의 제출 버튼이있는 양식이 있습니다. 두 개의 버튼은 이벤트 제출시 다른 작업을 수행하지만 필드 검증은 동일합니다. 나는 하나의 AjaxButton onSubmit을 오버라이드하여 다른 동작을 분리하지만 동일한 검증 방법을 통과 할 수는 없습니다.Wicket 하나의 양식과 두 개의 제출 버튼이 같은 유효성 확인
button = new AjaxButton("id",this.getRootForm()) {
@Override
protected void onSubmit(AjaxRequestTarget target, Form<?> form){...}
}
button.setDefaultFormProcessing(false);
@Override
protected void onValidate() {...}
@Override
protected void onSubmit() {...}
어떻게 양식을 사용하여 동일한 검증 방법을 통과 할 수 있습니까?
당신은 IValidator
또는 IFormValidator
를 구현하고 모든 Form
들에서 사용한다
this.getRootForm().add(new IFormValidator() {
@Override
public void validate(Form<?> form) {
doValidate(form);
}
@Override
public FormComponent<?>[] getDependentFormComponents() {
FormComponent<?>[] c = new FormComponent<?>[6];
c[0] = nome;
c[1] = email;
c[2] = cognome;
c[3] = indirizzo;
c[4] = telefono;
c[5] = captcha;
return c;
}
});
protected void doValidate(Form<?> form) {...}
button = new AjaxButton("id",this.getRootForm()) {
@Override
protected void onSubmit(AjaxRequestTarget target, Form<?> form){
doValidate(form);
if (!form.hasError()) {
...
} else{
target.add(feedbackPanel);
}
}
}
button.setDefaultFormProcessing(false);
개찰구가 없습니다. 1.7, 혹시 개찰구 7.X입니까? 또한'onValidate()'메서드를 사용하지 않는 것이 좋습니다 (무시하지 마십시오). 유효성 검사기를 구성 요소와 양식에 추가하면 SubmitButton은 기본적으로 버튼이 아니라고 명시하지 않는 한 해당 유효성 검사를 트리거합니다. 참조 : https://ci.apache.org/projects/wicket/guide/6.x/guide/forms2.html#forms2_2 –