如何在wicket表单上添加警告消息

时间:2018-03-29 18:53:27

标签: wicket

我正在使用form.warn方法添加警告消息,但未显示警告消息。如何在wicket表单上添加警告消息

public class FormPanel extends BreadCrumbPanel {

public FormPanel(String id, IBreadCrumbModel breadCrumbModel)
{
    super(id, breadCrumbModel);
    Form<?> form = new Form<Void>("form");
    form.add(new SaveButton("save"));
    form.add(new FeedbackPanel("feedback"));


}

private class SaveButton extends Button {
        private static final long serialVersionUID = 1L;

        public SaveButton(String id) {
            super(id);
        }

        @Override
        public void onSubmit() {
             validate(getForm());
          }
}
validate(Form<?> form){
   if(some logic)
     form.warn(“message”);
}
}

1 个答案:

答案 0 :(得分:2)

您最好将验证逻辑移至IValidator#validate()IFormValidator#validate()

目前您在Button#onSubmit()中调用它。这意味着Wicket认为一切都在您的表单字段中有效,并调用最后一步 - onSubmit()。通常在onSubmit()之后,您要么呈现完全不同的页面,要么呈现当前页面的新实例。在这两种情况下,当前页面实例都会与其表单及其反馈消息一起丢失。

如果IValidator#validate()失败,则Wicket会调用onError()代替并重新呈现当前页面实例。