This is an automated email from the ASF dual-hosted git repository. lukaszlenart pushed a commit to branch WW-5191-textarea-max-length in repository https://gitbox.apache.org/repos/asf/struts.git
commit 0e4d5962e1d774d6791b2f713263d9e9fcd41aab Author: Lukasz Lenart <lukaszlen...@apache.org> AuthorDate: Wed Jun 15 14:49:02 2022 +0200 WW-5191 Fixes placement of maxLength and minLength attributes in <s:textarea/> tag --- .../java/org/apache/struts2/views/jsp/ui/TextareaTag.java | 4 +++- core/src/main/resources/template/simple/textarea.ftl | 14 +++++++------- .../java/org/apache/struts2/views/jsp/ui/TextareaTest.java | 4 ++++ .../org/apache/struts2/views/jsp/ui/Textarea-1.txt | 2 +- 4 files changed, 15 insertions(+), 9 deletions(-) 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 0da6fe8bf..b814eb115 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 @@ -73,7 +73,7 @@ public class TextareaTag extends AbstractUITag { public void setWrap(String wrap) { this.wrap = wrap; } - + public void setMaxlength(String maxlength) { this.maxlength = maxlength; } @@ -100,6 +100,8 @@ public class TextareaTag extends AbstractUITag { this.readonly = null; this.rows = null; this.wrap = null; + this.maxlength = null; + this.minlength = null; } } diff --git a/core/src/main/resources/template/simple/textarea.ftl b/core/src/main/resources/template/simple/textarea.ftl index f08826f1e..b3f653ced 100644 --- a/core/src/main/resources/template/simple/textarea.ftl +++ b/core/src/main/resources/template/simple/textarea.ftl @@ -45,6 +45,12 @@ <#if parameters.title?has_content> title="${parameters.title}"<#rt/> </#if> +<#if parameters.maxlength?has_content> + maxlength="${parameters.maxlength}"<#rt/> +</#if> +<#if parameters.minlength?has_content> + minlength="${parameters.minlength}"<#rt/> +</#if> <#include "/${parameters.templateDir}/${parameters.expandTheme}/scripting-events.ftl" /> <#include "/${parameters.templateDir}/${parameters.expandTheme}/common-attributes.ftl" /> <#include "/${parameters.templateDir}/${parameters.expandTheme}/dynamic-attributes.ftl" /> @@ -52,10 +58,4 @@ <#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> -</textarea> \ No newline at end of file +</textarea> diff --git a/core/src/test/java/org/apache/struts2/views/jsp/ui/TextareaTest.java b/core/src/test/java/org/apache/struts2/views/jsp/ui/TextareaTest.java index d94bbd2c5..c83086255 100644 --- a/core/src/test/java/org/apache/struts2/views/jsp/ui/TextareaTest.java +++ b/core/src/test/java/org/apache/struts2/views/jsp/ui/TextareaTest.java @@ -47,6 +47,8 @@ public class TextareaTest extends AbstractUITagTest { tag.setId("the_id"); tag.setOnkeyup("alert('hello');"); tag.setReadonly("true"); + tag.setMaxlength("100"); + tag.setMinlength("10"); tag.doStartTag(); tag.doEndTag(); @@ -81,6 +83,8 @@ public class TextareaTest extends AbstractUITagTest { tag.setId("the_id"); tag.setOnkeyup("alert('hello');"); tag.setReadonly("true"); + tag.setMaxlength("100"); + tag.setMinlength("10"); tag.doStartTag(); setComponentTagClearTagState(tag, true); // Ensure component tag state clearing is set true (to match tag). diff --git a/core/src/test/resources/org/apache/struts2/views/jsp/ui/Textarea-1.txt b/core/src/test/resources/org/apache/struts2/views/jsp/ui/Textarea-1.txt index 3b6fe998c..c40a1160d 100644 --- a/core/src/test/resources/org/apache/struts2/views/jsp/ui/Textarea-1.txt +++ b/core/src/test/resources/org/apache/struts2/views/jsp/ui/Textarea-1.txt @@ -1,4 +1,4 @@ <tr> <td class="tdLabel"><label for="the_id" class="label">mylabel:</label></td> - <td class="tdInput"><textarea name="myname" cols="20" rows="30" disabled="disabled" readonly="readonly" tabindex="5" id="the_id" title="mytitle" onclick="alert('onclick');" onkeyup="alert('hello');" onchange="alert('goodbye');">bar</textarea></td> + <td class="tdInput"><textarea name="myname" cols="20" rows="30" disabled="disabled" readonly="readonly" tabindex="5" id="the_id" title="mytitle" maxlength="100" minlength="10" onclick="alert('onclick');" onkeyup="alert('hello');" onchange="alert('goodbye');">bar</textarea></td> </tr>