This is an automated email from the ASF dual-hosted git repository.

lukaszlenart pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/struts.git


The following commit(s) were added to refs/heads/master by this push:
     new 87d42d6  Fixes translating id in Form tag
87d42d6 is described below

commit 87d42d60c98b6651141ca6aa20ddc42919fe1ecc
Author: Lukasz Lenart <lukaszlen...@apache.org>
AuthorDate: Wed Nov 25 17:12:57 2020 +0100

    Fixes translating id in Form tag
---
 .../main/java/org/apache/struts2/components/Form.java |  2 +-
 .../org/apache/struts2/views/jsp/ui/FormTagTest.java  | 19 +++++++++++++++++++
 .../org/apache/struts2/views/jsp/ui/Formtag-29.txt    |  3 +++
 3 files changed, 23 insertions(+), 1 deletion(-)

diff --git a/core/src/main/java/org/apache/struts2/components/Form.java 
b/core/src/main/java/org/apache/struts2/components/Form.java
index 9758cf3..44bdd09 100644
--- a/core/src/main/java/org/apache/struts2/components/Form.java
+++ b/core/src/main/java/org/apache/struts2/components/Form.java
@@ -221,7 +221,7 @@ public class Form extends ClosingUIBean {
     @Override
     protected void populateComponentHtmlId(Form form) {
         if (id != null) {
-            addParameter("id", escape(id));
+            super.populateComponentHtmlId(null);
         }
 
         // if no id given, it will be tried to generate it from the action 
attribute
diff --git 
a/core/src/test/java/org/apache/struts2/views/jsp/ui/FormTagTest.java 
b/core/src/test/java/org/apache/struts2/views/jsp/ui/FormTagTest.java
index 1ccbb89..79abd4c 100644
--- a/core/src/test/java/org/apache/struts2/views/jsp/ui/FormTagTest.java
+++ b/core/src/test/java/org/apache/struts2/views/jsp/ui/FormTagTest.java
@@ -189,6 +189,25 @@ public class FormTagTest extends AbstractUITagTest {
         verify(FormTag.class.getResource("Formtag-1.txt"));
     }
 
+    public void testFormId() throws Exception {
+
+        request.setupGetServletPath("/testAction");
+
+        TestAction testAction = (TestAction) action;
+        testAction.setFoo("bar");
+
+        FormTag tag = new FormTag();
+        tag.setPageContext(pageContext);
+        tag.setMethod("post");
+        tag.setAction("myAction");
+        tag.setId("myid-%{foo}");
+
+        tag.doStartTag();
+        tag.doEndTag();
+
+        verify(FormTag.class.getResource("Formtag-29.txt"));
+    }
+
      public void testFormNoNameOrId() throws Exception {
 
         request.setupGetServletPath("/testAction");
diff --git 
a/core/src/test/resources/org/apache/struts2/views/jsp/ui/Formtag-29.txt 
b/core/src/test/resources/org/apache/struts2/views/jsp/ui/Formtag-29.txt
new file mode 100644
index 0000000..1337f57
--- /dev/null
+++ b/core/src/test/resources/org/apache/struts2/views/jsp/ui/Formtag-29.txt
@@ -0,0 +1,3 @@
+<form id="myid-bar" name="myid-bar" action="myAction" method="post">
+  <table class="wwFormTable"></table>
+</form>

Reply via email to