Add Form Component to AjaxTarget with IVisitor
When writing AJAX-specific code for Wicket, in order to make any updates to a component, it needs to be added to the AjaxTarget. If you've got a particularly large form, this can get tedious, so use an IVisitor instead!
@Override
protected void onSubmit(final AjaxRequestTarget target, Form form) {
    form.visitFormComponents(new FormComponent.IVisitor() {
        public Object formComponent(IFormVisitorParticipant
                formComponent) {
            final FormComponent fc = (FormComponent)formComponent;
            target.addComponent(fc);
            return Component.IVisitor.CONTINUE_TRAVERSAL;
        }
    });
    ...And as always, for each component you access via AJAX, you'll need to:
   component.setOutputMarkupId(true);


