Author: lukaszlenart
Date: Tue Jun  7 15:18:58 2011
New Revision: 1133044

URL: http://svn.apache.org/viewvc?rev=1133044&view=rev
Log:
WW-3644 - adds support for expression evaluation in dynamic attributes

Added:
    
struts/struts2/trunk/core/src/test/resources/org/apache/struts2/views/jsp/ui/Anchor-3.txt
      - copied, changed from r1132139, 
struts/struts2/trunk/core/src/test/resources/org/apache/struts2/views/jsp/ui/Anchor-2.txt
Modified:
    
struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/jsp/ui/AbstractUITag.java
    
struts/struts2/trunk/core/src/test/java/org/apache/struts2/views/jsp/ui/AnchorTest.java

Modified: 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/jsp/ui/AbstractUITag.java
URL: 
http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/jsp/ui/AbstractUITag.java?rev=1133044&r1=1133043&r2=1133044&view=diff
==============================================================================
--- 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/jsp/ui/AbstractUITag.java
 (original)
+++ 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/jsp/ui/AbstractUITag.java
 Tue Jun  7 15:18:58 2011
@@ -21,14 +21,13 @@
 
 package org.apache.struts2.views.jsp.ui;
 
-import java.util.HashMap;
-import java.util.Map;
+import org.apache.struts2.components.UIBean;
+import org.apache.struts2.views.jsp.ComponentTagSupport;
 
 import javax.servlet.jsp.JspException;
 import javax.servlet.jsp.tagext.DynamicAttributes;
-
-import org.apache.struts2.components.UIBean;
-import org.apache.struts2.views.jsp.ComponentTagSupport;
+import java.util.HashMap;
+import java.util.Map;
 
 
 /**
@@ -292,6 +291,11 @@ public abstract class AbstractUITag exte
     }
 
     public void setDynamicAttribute(String uri, String localName, Object 
value) throws JspException {
-        dynamicAttributes.put(localName, value);
+        if (value != null && value instanceof String) {
+            dynamicAttributes.put(localName, findValue(value.toString()));
+        } else {
+            dynamicAttributes.put(localName, value);
+        }
     }
+
 }

Modified: 
struts/struts2/trunk/core/src/test/java/org/apache/struts2/views/jsp/ui/AnchorTest.java
URL: 
http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/test/java/org/apache/struts2/views/jsp/ui/AnchorTest.java?rev=1133044&r1=1133043&r2=1133044&view=diff
==============================================================================
--- 
struts/struts2/trunk/core/src/test/java/org/apache/struts2/views/jsp/ui/AnchorTest.java
 (original)
+++ 
struts/struts2/trunk/core/src/test/java/org/apache/struts2/views/jsp/ui/AnchorTest.java
 Tue Jun  7 15:18:58 2011
@@ -76,4 +76,22 @@ public class AnchorTest extends Abstract
 
         verify(AnchorTest.class.getResource("Anchor-2.txt"));
     }
+
+    public void testDynamicAttributeAsExpression() throws Exception {
+        TestAction testAction = (TestAction) action;
+        testAction.setFoo("bar");
+
+        AnchorTag tag = new AnchorTag();
+        tag.setPageContext(pageContext);
+
+        tag.setId("mylink");
+        tag.setHref("a");
+
+        tag.setDynamicAttribute("uri", "placeholder", "foo");
+
+        tag.doStartTag();
+        tag.doEndTag();
+
+        verify(AnchorTest.class.getResource("Anchor-3.txt"));
+    }
 }

Copied: 
struts/struts2/trunk/core/src/test/resources/org/apache/struts2/views/jsp/ui/Anchor-3.txt
 (from r1132139, 
struts/struts2/trunk/core/src/test/resources/org/apache/struts2/views/jsp/ui/Anchor-2.txt)
URL: 
http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/test/resources/org/apache/struts2/views/jsp/ui/Anchor-3.txt?p2=struts/struts2/trunk/core/src/test/resources/org/apache/struts2/views/jsp/ui/Anchor-3.txt&p1=struts/struts2/trunk/core/src/test/resources/org/apache/struts2/views/jsp/ui/Anchor-2.txt&r1=1132139&r2=1133044&rev=1133044&view=diff
==============================================================================
--- 
struts/struts2/trunk/core/src/test/resources/org/apache/struts2/views/jsp/ui/Anchor-2.txt
 (original)
+++ 
struts/struts2/trunk/core/src/test/resources/org/apache/struts2/views/jsp/ui/Anchor-3.txt
 Tue Jun  7 15:18:58 2011
@@ -1,5 +1,5 @@
 <a
  id="mylink"
  href="a"
- dynAttrName="dynAttrValue">
+ placeholder="bar">
 </a>


Reply via email to