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();