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