I register an error to the page in the model but the feedback message doesn't show in FeedbackPanel. Only the error message register in onSubmit() event handler shows. Please have a look. Thanks!
HomePage.html: <html> <head></head> <span wicket:id="message">message will be here</span> <form wicket:id="form"> <input type="text" wicket:id="word"/> <input type="submit" value="Enter" wicket:id="submitButton"/> </form> <span wicket:id="feedback">FEEDBACK</span> </html> HomePage.java import ... public class HomePage extends WebPage { private static final long serialVersionUID = 1L; private String word; public HomePage(final PageParameters parameters) { add(new FeedbackPanel("feedback").setOutputMarkupPlaceholderTag(true)); // if the word 'blowup' is entered, this model register a error message to the page IModel model = new Model() { private static final long serialVersionUID = 1L; @Override public Object getObject() { if (word != null && word.equals("blowup")) { word = "-b-l-o-w-u-p-"; HomePage.this.fatal("This message is from model."); return "BAD THING HAPPENED IN MODEL"; } else { return "The word is: \"" + (word == null ? " n u l l " : word) + "\""; } } }; add(new Label("message", model).setOutputMarkupId(true)); Form form = new Form("form", new CompoundPropertyModel(this)); add(form); form.add(new TextField("word").setRequired(true)); AjaxFallbackButton submitButton = new AjaxFallbackButton("submitButton", form) { private static final long serialVersionUID = 1L; @Override protected void onSubmit(AjaxRequestTarget target, Form f) { if (word != null && word.equals("blowup")) { HomePage.this.error("This message is from onSubmit. There should also be a message from model"); } if (target != null) { target.addComponent(HomePage.this.get("feedback")); target.addComponent(HomePage.this.get("message")); } } @Override protected void onError(AjaxRequestTarget target, Form f) { target.addComponent(HomePage.this.get("feedback")); // show updated error feedback } }; form.add(submitButton); } }