This is an automated email from the ASF dual-hosted git repository.
svenmeier pushed a commit to branch wicket-8.x
in repository https://gitbox.apache.org/repos/asf/wicket.git
The following commit(s) were added to refs/heads/wicket-8.x by this push:
new 7a60770 WICKET-6760 preserve tag name for nested form placeholder
7a60770 is described below
commit 7a6077008a4f5bef912e5cb585887ed3a857e75e
Author: Sven Meier <[email protected]>
AuthorDate: Wed Mar 18 14:09:26 2020 +0100
WICKET-6760 preserve tag name for nested form placeholder
if not a <form> tag
---
.../src/main/java/org/apache/wicket/Component.java | 2 +-
.../org/apache/wicket/markup/html/form/Form.java | 33 +++++++++-------------
.../wicket/markup/html/form/NestedFormsTest.java | 29 ++++++++++++++++++-
.../markup/html/form/NestedFormsTest_expected.html | 1 +
.../form/NestedFormsTest_placeholder_expected.html | 1 +
5 files changed, 45 insertions(+), 21 deletions(-)
diff --git a/wicket-core/src/main/java/org/apache/wicket/Component.java
b/wicket-core/src/main/java/org/apache/wicket/Component.java
index effae20..ce7b41a 100644
--- a/wicket-core/src/main/java/org/apache/wicket/Component.java
+++ b/wicket-core/src/main/java/org/apache/wicket/Component.java
@@ -2314,7 +2314,7 @@ public abstract class Component
{
if (getFlag(FLAG_PLACEHOLDER))
{
- renderPlaceholderTag((ComponentTag)elem,
getResponse());
+
renderPlaceholderTag(((ComponentTag)elem).mutable(), getResponse());
}
}
}
diff --git
a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/Form.java
b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/Form.java
index 5858db4..1416697 100644
--- a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/Form.java
+++ b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/Form.java
@@ -1631,16 +1631,20 @@ public class Form<T> extends WebMarkupContainer
}
else
{
- // WICKET-6658 form is not allowed, anything else can
stay as is
- if ("form".equalsIgnoreCase(tag.getName()))
- {
- tag.setName("div");
- }
+ adjustNestedTagName(tag);
tag.remove("method");
tag.remove("action");
tag.remove("enctype");
}
}
+
+ // WICKET-6658 form is not allowed, anything else can stay as is
+ private void adjustNestedTagName(ComponentTag tag) {
+ if ("form".equalsIgnoreCase(tag.getName()))
+ {
+ tag.setName("div");
+ }
+ }
/**
* Generates the action url for the form
@@ -1659,22 +1663,13 @@ public class Form<T> extends WebMarkupContainer
@Override
protected void renderPlaceholderTag(ComponentTag tag, Response response)
{
- if (isRootForm())
+ if (!isRootForm())
{
- super.renderPlaceholderTag(tag, response);
- }
- else
- {
- // rewrite inner form tag as div
- response.write("<div style=\"display:none\"");
- if (getOutputMarkupId())
- {
- response.write(" id=\"");
- response.write(getMarkupId());
- response.write("\"");
- }
- response.write("></div>");
+ // WICKET-2166
+ adjustNestedTagName(tag);
}
+
+ super.renderPlaceholderTag(tag, response);
}
/**
diff --git
a/wicket-core/src/test/java/org/apache/wicket/markup/html/form/NestedFormsTest.java
b/wicket-core/src/test/java/org/apache/wicket/markup/html/form/NestedFormsTest.java
index 6b5b8c4..a3ae1be 100644
---
a/wicket-core/src/test/java/org/apache/wicket/markup/html/form/NestedFormsTest.java
+++
b/wicket-core/src/test/java/org/apache/wicket/markup/html/form/NestedFormsTest.java
@@ -35,7 +35,26 @@ import org.junit.Test;
public class NestedFormsTest extends WicketTestCase
{
/**
- *
+ *
+ */
+ @Test
+ public void tagName() throws Exception
+ {
+ tester.executeTest(NestedFormsTest.class, new TestPage(),
"NestedFormsTest_expected.html");
+
+ }
+
+ /**
+ * WICKET-2166, WICKET-6760
+ */
+ @Test
+ public void tagNamePlaceholder() throws Exception
+ {
+ tester.executeTest(NestedFormsTest.class, new
TestPage().hideInner(), "NestedFormsTest_placeholder_expected.html");
+ }
+
+ /**
+ *
*/
@Test
public void postOrderSequenceSubmittingRootForm()
@@ -131,6 +150,14 @@ public class NestedFormsTest extends WicketTestCase
innerForm.add(innerSubmit);
}
+ public TestPage hideInner()
+ {
+ innerForm.setOutputMarkupPlaceholderTag(true);
+ innerForm.setVisible(false);
+
+ return this;
+ }
+
@Override
public IResourceStream getMarkupResourceStream(MarkupContainer
container,
Class<?> containerClass)
diff --git
a/wicket-core/src/test/java/org/apache/wicket/markup/html/form/NestedFormsTest_expected.html
b/wicket-core/src/test/java/org/apache/wicket/markup/html/form/NestedFormsTest_expected.html
new file mode 100644
index 0000000..129a3be
--- /dev/null
+++
b/wicket-core/src/test/java/org/apache/wicket/markup/html/form/NestedFormsTest_expected.html
@@ -0,0 +1 @@
+<html><body><form wicket:id="outerForm" id="outerForm1" method="post"
action="./page?0-1.-outerForm"> <input type="submit" wicket:id="outerSubmit"
name="outerSubmit" id="outerSubmit2"/> <div wicket:id="innerForm"
id="innerForm3"><input type="submit" wicket:id="innerSubmit"
name="innerForm:innerSubmit" id="innerSubmit4"/></div></form></body></html>
\ No newline at end of file
diff --git
a/wicket-core/src/test/java/org/apache/wicket/markup/html/form/NestedFormsTest_placeholder_expected.html
b/wicket-core/src/test/java/org/apache/wicket/markup/html/form/NestedFormsTest_placeholder_expected.html
new file mode 100644
index 0000000..51d8a4b
--- /dev/null
+++
b/wicket-core/src/test/java/org/apache/wicket/markup/html/form/NestedFormsTest_placeholder_expected.html
@@ -0,0 +1 @@
+<html><body><form wicket:id="outerForm" id="outerForm1" method="post"
action="./page?0-1.-outerForm"> <input type="submit" wicket:id="outerSubmit"
name="outerSubmit" id="outerSubmit2"/> <div id="innerForm3"
style="display:none" data-wicket-placeholder=""></div></form></body></html>
\ No newline at end of file