diff --git a/core/src/main/java/org/apache/struts2/components/TextArea.java b/core/src/main/java/org/apache/struts2/components/TextArea.java index 6e280fcc0..0d03991c6 100644 --- a/core/src/main/java/org/apache/struts2/components/TextArea.java +++ b/core/src/main/java/org/apache/struts2/components/TextArea.java @@ -51,6 +51,8 @@ public class TextArea extends UIBean { protected String readonly; protected String rows; protected String wrap; + protected String maxlength; + protected String minlength; public TextArea(ValueStack stack, HttpServletRequest request, HttpServletResponse response) { super(stack, request, response); @@ -78,6 +80,13 @@ public class TextArea extends UIBean { if (wrap != null) { addParameter("wrap", findString(wrap)); } + + if (maxlength != null) { + addParameter("maxlength", findString(maxlength)); + } + if (minlength != null) { + addParameter("minlength", findString(minlength)); + } } @StrutsTagAttribute(description="HTML cols attribute", type="Integer") @@ -99,4 +108,14 @@ public class TextArea extends UIBean { public void setWrap(String wrap) { this.wrap = wrap; } + + @StrutsTagAttribute(description="HTML maxlength attribute", type="Integer") + public void setMaxlength(String maxlength) { + this.maxlength = maxlength; + } + + @StrutsTagAttribute(description="HTML minlength attribute", type="Integer") + public void setMinlength(String minlength) { + this.minlength = minlength; + } } diff --git a/core/src/main/java/org/apache/struts2/views/jsp/ui/TextareaTag.java b/core/src/main/java/org/apache/struts2/views/jsp/ui/TextareaTag.java index 1f77f1def..0efbe0188 100644 --- a/core/src/main/java/org/apache/struts2/views/jsp/ui/TextareaTag.java +++ b/core/src/main/java/org/apache/struts2/views/jsp/ui/TextareaTag.java @@ -37,6 +37,8 @@ public class TextareaTag extends AbstractUITag { protected String readonly; protected String rows; protected String wrap; + protected String maxlength; + protected String minlength; public Component getBean(ValueStack stack, HttpServletRequest req, HttpServletResponse res) { return new TextArea(stack, req, res); @@ -50,6 +52,8 @@ public class TextareaTag extends AbstractUITag { textArea.setReadonly(readonly); textArea.setRows(rows); textArea.setWrap(wrap); + textArea.setMaxlength(maxlength); + textArea.setMinlength(minlength); } public void setCols(String cols) { @@ -67,5 +71,13 @@ public class TextareaTag extends AbstractUITag { public void setWrap(String wrap) { this.wrap = wrap; } + + public void setMaxlength(String maxlength) { + this.maxlength = maxlength; + } + + public void setMinlength(String minlength) { + this.minlength = minlength; + } } diff --git a/core/src/main/resources/template/simple/textarea.ftl b/core/src/main/resources/template/simple/textarea.ftl index 22f2d9b95..f08826f1e 100644 --- a/core/src/main/resources/template/simple/textarea.ftl +++ b/core/src/main/resources/template/simple/textarea.ftl @@ -52,4 +52,10 @@ <#if parameters.nameValue??> <@s.property value="parameters.nameValue"/><#t/> #if> +<#if parameters.maxlength?has_content> + maxlength="${parameters.maxlength}"<#rt/> +#if> +<#if parameters.minlength?has_content> + minlength="${parameters.minlength}"<#rt/> +#if> \ No newline at end of file diff --git a/core/src/site/resources/tags/textarea-attributes.html b/core/src/site/resources/tags/textarea-attributes.html index fbdf0549f..8a35ed8c1 100644 --- a/core/src/site/resources/tags/textarea-attributes.html +++ b/core/src/site/resources/tags/textarea-attributes.html @@ -133,6 +133,14 @@