Author: lukaszlenart
Date: Fri May 24 14:39:40 2013
New Revision: 1486079

URL: http://svn.apache.org/r1486079
Log:
WW-4036 Extends support of Dynamic Attributes to evaluate null attributes to 
empty string

Modified:
    
struts/struts2/trunk/plugins/javatemplates/src/main/java/org/apache/struts2/views/java/simple/DynamicAttributesHandler.java

Modified: 
struts/struts2/trunk/plugins/javatemplates/src/main/java/org/apache/struts2/views/java/simple/DynamicAttributesHandler.java
URL: 
http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/javatemplates/src/main/java/org/apache/struts2/views/java/simple/DynamicAttributesHandler.java?rev=1486079&r1=1486078&r2=1486079&view=diff
==============================================================================
--- 
struts/struts2/trunk/plugins/javatemplates/src/main/java/org/apache/struts2/views/java/simple/DynamicAttributesHandler.java
 (original)
+++ 
struts/struts2/trunk/plugins/javatemplates/src/main/java/org/apache/struts2/views/java/simple/DynamicAttributesHandler.java
 Fri May 24 14:39:40 2013
@@ -21,6 +21,8 @@
 
 package org.apache.struts2.views.java.simple;
 
+import org.apache.commons.lang3.ObjectUtils;
+import org.apache.struts2.util.ComponentUtils;
 import org.apache.struts2.views.java.Attributes;
 
 import java.io.IOException;
@@ -36,8 +38,20 @@ public class DynamicAttributesHandler ex
      */
     @Override
     public void start(String name, Attributes a) throws IOException {
-        a.putAll((Map<String, String>) 
context.getParameters().get("dynamicAttributes"));
+        processDynamicAttributes(a);
         super.start(name, a);
     }
 
+    protected void processDynamicAttributes(Attributes a) {
+        Map<String, String> dynamicAttributes = (Map<String, String>) 
context.getParameters().get("dynamicAttributes");
+        for (Map.Entry<String, String> entry : dynamicAttributes.entrySet()) {
+            if (altSyntax && ComponentUtils.isExpression(entry.getValue())) {
+                String value = 
ObjectUtils.defaultIfNull(findString(entry.getValue()), entry.getValue());
+                a.put(entry.getKey(), value);
+            } else {
+                a.put(entry.getKey(), entry.getValue());
+            }
+        }
+    }
+
 }


Reply via email to