Updated Branches: refs/heads/master 9ec2db95b -> 8fc18e3b8
WICKET-5158 Ignore missing Page in StatelessForm#process() Get the page parameters before processing the form. Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/8fc18e3b Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/8fc18e3b Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/8fc18e3b Branch: refs/heads/master Commit: 8fc18e3b888c591403353f6bc103174041f78554 Parents: 9ec2db9 Author: Martin Tzvetanov Grigorov <[email protected]> Authored: Sun Apr 28 07:50:55 2013 +0200 Committer: Martin Tzvetanov Grigorov <[email protected]> Committed: Sun Apr 28 07:50:55 2013 +0200 ---------------------------------------------------------------------- .../wicket/markup/html/form/StatelessForm.java | 33 +++++++-------- 1 files changed, 15 insertions(+), 18 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/wicket/blob/8fc18e3b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/StatelessForm.java ---------------------------------------------------------------------- diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/StatelessForm.java b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/StatelessForm.java index cb4af6e..c487b00 100644 --- a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/StatelessForm.java +++ b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/StatelessForm.java @@ -16,7 +16,6 @@ */ package org.apache.wicket.markup.html.form; -import org.apache.wicket.Page; import org.apache.wicket.model.IModel; import org.apache.wicket.request.mapper.parameter.PageParameters; import org.apache.wicket.util.visit.IVisit; @@ -85,29 +84,27 @@ public class StatelessForm<T> extends Form<T> @Override public void process(IFormSubmitter submittingComponent) { + // get the parameters before processing the form because the + // application may remove this form from its parent in #onSubmit() (WICKET-5158) + final PageParameters parameters = getPage().getPageParameters(); + super.process(submittingComponent); - Page page = findPage(); - // the application may have removed this form from its parent in #onSubmit() - if (page != null) + if (parameters != null) { - final PageParameters parameters = page.getPageParameters(); - if (parameters != null) + visitFormComponents(new IVisitor<FormComponent<?>, Void>() { - visitFormComponents(new IVisitor<FormComponent<?>, Void>() - { - @Override - public void component(final FormComponent<?> formComponent, final IVisit<Void> visit) - { - parameters.remove(formComponent.getInputName()); - } - }); - parameters.remove(getHiddenFieldId()); - if (submittingComponent instanceof AbstractSubmitLink) + @Override + public void component(final FormComponent<?> formComponent, final IVisit<Void> visit) { - AbstractSubmitLink submitLink = (AbstractSubmitLink)submittingComponent; - parameters.remove(submitLink.getInputName()); + parameters.remove(formComponent.getInputName()); } + }); + parameters.remove(getHiddenFieldId()); + if (submittingComponent instanceof AbstractSubmitLink) + { + AbstractSubmitLink submitLink = (AbstractSubmitLink)submittingComponent; + parameters.remove(submitLink.getInputName()); } } }
