Метод onSubmit () выполняется только после , вся проверка выполняется, поэтому этот код даже не выполняется.
Но вам часто требуется выполнение некоторых действий без какой-либо проверки (например, кнопка «Отмена»). Вы можете сделать это, позвонив
cancel.setDefaultFormProcessing(false);
Таким образом, Wicket будет игнорировать проверку и обновление формы и сразу же выполнит метод onSubmit ().
Тогда ваш код будет выглядеть так:
AjaxButton cancel = new AjaxButton("cancel") {
public void onSubmit(AjaxRequestTarget target, Form form){
setResponsePage(new LecturerPage());
}
};
cancel.setDefaultFormProcessing(false);
Жалоба Wicket на то, что обратная связь не обрабатывается, происходит потому, что, поскольку вы не вызвали setDefaultFormProcessing (false), он обработает форму, попытается проверить ее поля и найти ошибки. И в конце цикла запроса сообщения об ошибках нигде не отображались, поскольку вы не запрашивали повторную визуализацию панели обратной связи. Чтобы отобразить ошибки проверки в формах ajax, необходимо переопределить метод AjaxButton.onError ():
AjaxButton save = new AjaxButton("save") {
public void onSubmit(AjaxRequestTarget target, Form form) {
// whatever. won't run if any validation fails
}
public void onError(AjaxRequestTarget target, Form<?> form) {
target.addComponent(feedbackPanel);
}
};