You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@struts.apache.org by mr...@apache.org on 2008/01/25 13:40:18 UTC

svn commit: r615208 - in /struts/struts2/trunk/core/src: main/java/org/apache/struts2/components/UIBean.java test/java/org/apache/struts2/components/UIBeanTest.java

Author: mrdon
Date: Fri Jan 25 04:40:17 2008
New Revision: 615208

URL: http://svn.apache.org/viewvc?rev=615208&view=rev
Log:
Escaping forward slashes in element ids
WW-2303

Modified:
    struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/UIBean.java
    struts/struts2/trunk/core/src/test/java/org/apache/struts2/components/UIBeanTest.java

Modified: struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/UIBean.java
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/UIBean.java?rev=615208&r1=615207&r2=615208&view=diff
==============================================================================
--- struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/UIBean.java (original)
+++ struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/UIBean.java Fri Jan 25 04:40:17 2008
@@ -831,7 +831,7 @@
     protected String escape(String name) {
         // escape any possible values that can make the ID painful to work with in JavaScript
         if (name != null) {
-            return name.replaceAll("[\\.\\[\\]]", "_");
+            return name.replaceAll("[\\/\\.\\[\\]]", "_");
         } else {
             return "";
         }

Modified: struts/struts2/trunk/core/src/test/java/org/apache/struts2/components/UIBeanTest.java
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/test/java/org/apache/struts2/components/UIBeanTest.java?rev=615208&r1=615207&r2=615208&view=diff
==============================================================================
--- struts/struts2/trunk/core/src/test/java/org/apache/struts2/components/UIBeanTest.java (original)
+++ struts/struts2/trunk/core/src/test/java/org/apache/struts2/components/UIBeanTest.java Fri Jan 25 04:40:17 2008
@@ -85,6 +85,20 @@
         assertEquals("formId_txtFldName", txtFld.getParameters().get("id"));
     }
 
+    public void testEscapeId() throws Exception {
+        ValueStack stack = ActionContext.getContext().getValueStack();
+        MockHttpServletRequest req = new MockHttpServletRequest();
+        MockHttpServletResponse res = new MockHttpServletResponse();
+
+        Form form = new Form(stack, req, res);
+        form.getParameters().put("id", "formId");
+
+        TextField txtFld = new TextField(stack, req, res);
+        txtFld.setName("foo/bar");
+        txtFld.populateComponentHtmlId(form);
+        assertEquals("formId_foo_bar", txtFld.getParameters().get("id"));
+    }
+
     public void testGetThemeFromForm() throws Exception {
         ValueStack stack = ActionContext.getContext().getValueStack();
         MockHttpServletRequest req = new MockHttpServletRequest();