Repository: wicket Updated Branches: refs/heads/wicket-6.x ed07f6b38 -> 0d0697a79
WICKET-5710 StringValidator should set 'minlength' attribute to input and textarea (cherry picked from commit b0fc628f132158aa46751506d9f281199abf8143) Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/0d0697a7 Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/0d0697a7 Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/0d0697a7 Branch: refs/heads/wicket-6.x Commit: 0d0697a798184a0600fd78c4e6d20d9e756198a5 Parents: ed07f6b Author: Martin Tzvetanov Grigorov <[email protected]> Authored: Mon Sep 29 10:40:21 2014 +0200 Committer: Martin Tzvetanov Grigorov <[email protected]> Committed: Tue Sep 30 09:06:39 2014 +0200 ---------------------------------------------------------------------- .../validation/validator/StringValidator.java | 24 +++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/wicket/blob/0d0697a7/wicket-core/src/main/java/org/apache/wicket/validation/validator/StringValidator.java ---------------------------------------------------------------------- diff --git a/wicket-core/src/main/java/org/apache/wicket/validation/validator/StringValidator.java b/wicket-core/src/main/java/org/apache/wicket/validation/validator/StringValidator.java index 57bae1b..3008ba9 100644 --- a/wicket-core/src/main/java/org/apache/wicket/validation/validator/StringValidator.java +++ b/wicket-core/src/main/java/org/apache/wicket/validation/validator/StringValidator.java @@ -16,6 +16,8 @@ */ package org.apache.wicket.validation.validator; +import java.util.Locale; + import org.apache.wicket.Component; import org.apache.wicket.markup.ComponentTag; import org.apache.wicket.validation.IValidatable; @@ -99,10 +101,26 @@ public class StringValidator extends AbstractRangeValidator<Integer, String> public void onComponentTag(Component component, ComponentTag tag) { super.onComponentTag(component, tag); - if (getMaximum() != null && "input".equalsIgnoreCase(tag.getName())) + + String tagName = tag.getName().toLowerCase(Locale.ENGLISH); + boolean hasLengthAttribute = hasLengthAttribute(tagName); + + Integer maximum = getMaximum(); + if (maximum != null && hasLengthAttribute) { - tag.put("maxlength", getMaximum()); + tag.put("maxlength", maximum); } + + Integer minimum = getMinimum(); + if (minimum != null && hasLengthAttribute) + { + tag.put("minlength", minimum); + } + } + + private boolean hasLengthAttribute(String tagName) + { + return "input".equalsIgnoreCase(tagName) || "textarea".equalsIgnoreCase(tagName); } /** @@ -146,4 +164,4 @@ public class StringValidator extends AbstractRangeValidator<Integer, String> return new StringValidator(minimum, maximum); } -} \ No newline at end of file +}
