From a61443089903f42d9bc07c2acd05274abfa4ed05 Mon Sep 17 00:00:00 2001 From: Juergen Hoeller Date: Wed, 24 Mar 2010 14:26:00 +0000 Subject: [PATCH] allow for null keys and null values in rendered Map (SPR-7024) --- .../web/servlet/tags/form/OptionWriter.java | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/org.springframework.web.servlet/src/main/java/org/springframework/web/servlet/tags/form/OptionWriter.java b/org.springframework.web.servlet/src/main/java/org/springframework/web/servlet/tags/form/OptionWriter.java index ae527de4c4..0284d86ca3 100644 --- a/org.springframework.web.servlet/src/main/java/org/springframework/web/servlet/tags/form/OptionWriter.java +++ b/org.springframework.web.servlet/src/main/java/org/springframework/web/servlet/tags/form/OptionWriter.java @@ -157,17 +157,17 @@ class OptionWriter { * {@link Map} as the source. * @see #renderOption(TagWriter, Object, Object, Object) */ - private void renderFromMap(final TagWriter tagWriter) throws JspException { + private void renderFromMap(TagWriter tagWriter) throws JspException { Map optionMap = (Map) this.optionSource; for (Map.Entry entry : optionMap.entrySet()) { Object mapKey = entry.getKey(); Object mapValue = entry.getValue(); - BeanWrapper mapKeyWrapper = PropertyAccessorFactory.forBeanPropertyAccess(mapKey); - BeanWrapper mapValueWrapper = PropertyAccessorFactory.forBeanPropertyAccess(mapValue); - Object renderValue = (this.valueProperty != null ? mapKeyWrapper.getPropertyValue(this.valueProperty) : - mapKey.toString()); - Object renderLabel = (this.labelProperty != null ? mapValueWrapper.getPropertyValue(this.labelProperty) : - mapValue.toString()); + Object renderValue = (this.valueProperty != null ? + PropertyAccessorFactory.forBeanPropertyAccess(mapKey).getPropertyValue(this.valueProperty) : + mapKey); + Object renderLabel = (this.labelProperty != null ? + PropertyAccessorFactory.forBeanPropertyAccess(mapValue).getPropertyValue(this.labelProperty) : + mapValue); renderOption(tagWriter, mapKey, renderValue, renderLabel); } } @@ -184,7 +184,7 @@ class OptionWriter { * Renders the inner 'option' tags using the {@link #optionSource}. * @see #doRenderFromCollection(java.util.Collection, TagWriter) */ - private void renderFromEnum(final TagWriter tagWriter) throws JspException { + private void renderFromEnum(TagWriter tagWriter) throws JspException { doRenderFromCollection(CollectionUtils.arrayToList(((Class) this.optionSource).getEnumConstants()), tagWriter); }