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