From 779ca99f38de3da382852f89faf84f87bfa50d9e Mon Sep 17 00:00:00 2001 From: Juergen Hoeller Date: Wed, 25 Jun 2014 12:36:51 +0200 Subject: [PATCH] SelectTag consistently checks specified 'multiple' attribute now, never falling back to forceMultiple in case of user-provided value Issue: SPR-11903 --- .../web/servlet/tags/form/SelectTag.java | 8 +- .../web/servlet/tags/form/SelectTagTests.java | 111 +++++++++++++++++- 2 files changed, 113 insertions(+), 6 deletions(-) diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/tags/form/SelectTag.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/tags/form/SelectTag.java index 85132df25c5..2439a9cd657 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/tags/form/SelectTag.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/tags/form/SelectTag.java @@ -84,7 +84,7 @@ public class SelectTag extends AbstractHtmlInputElementTag { * Indicates whether or not the '{@code select}' tag allows * multiple-selections. */ - private Object multiple = Boolean.FALSE; + private Object multiple; /** * The {@link TagWriter} instance that the output is being written. @@ -249,9 +249,9 @@ public class SelectTag extends AbstractHtmlInputElementTag { private boolean isMultiple() throws JspException { Object multiple = getMultiple(); - if (multiple != null && (Boolean.TRUE.equals(multiple) || - Boolean.parseBoolean(multiple.toString()) || "multiple".equals(multiple))) { - return true; + if (multiple != null) { + String stringValue = multiple.toString(); + return ("multiple".equalsIgnoreCase(stringValue) || Boolean.parseBoolean(stringValue)); } return forceMultiple(); } diff --git a/spring-webmvc/src/test/java/org/springframework/web/servlet/tags/form/SelectTagTests.java b/spring-webmvc/src/test/java/org/springframework/web/servlet/tags/form/SelectTagTests.java index d531fdcc655..63796f3577e 100644 --- a/spring-webmvc/src/test/java/org/springframework/web/servlet/tags/form/SelectTagTests.java +++ b/spring-webmvc/src/test/java/org/springframework/web/servlet/tags/form/SelectTagTests.java @@ -256,6 +256,7 @@ public class SelectTagTests extends AbstractFormTagTests { assertTrue(output.startsWith("