Fix closing of textarea

git-svn-id: https://svn.apache.org/repos/asf/struts/sandbox/trunk@727752 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/struts2-javatemplates-plugin/src/main/java/org/apache/struts2/views/java/simple/SimpleTheme.java b/struts2-javatemplates-plugin/src/main/java/org/apache/struts2/views/java/simple/SimpleTheme.java
index 015b577..6046eb7 100644
--- a/struts2-javatemplates-plugin/src/main/java/org/apache/struts2/views/java/simple/SimpleTheme.java
+++ b/struts2-javatemplates-plugin/src/main/java/org/apache/struts2/views/java/simple/SimpleTheme.java
@@ -48,6 +48,7 @@
             put("submit", new FactoryList(SubmitHandler.class, ScriptingEventsHandler.class, CommonAttributesHandler.class));
             put("submit-close", new FactoryList(SubmitHandler.CloseHandler.class));
             put("textarea", new FactoryList(TextAreaHandler.class, ScriptingEventsHandler.class, CommonAttributesHandler.class));
+            put("textarea-close", new FactoryList(TextAreaHandler.CloseHandler.class));
             put("actionerror", new FactoryList(ActionErrorHandler.class));
             put("token", new FactoryList(TokenHandler.class));
             put("actionmessage", new FactoryList(ActionMessageHandler.class));
diff --git a/struts2-javatemplates-plugin/src/main/java/org/apache/struts2/views/java/simple/TextAreaHandler.java b/struts2-javatemplates-plugin/src/main/java/org/apache/struts2/views/java/simple/TextAreaHandler.java
index 35f5f8e..bbab4b7 100644
--- a/struts2-javatemplates-plugin/src/main/java/org/apache/struts2/views/java/simple/TextAreaHandler.java
+++ b/struts2-javatemplates-plugin/src/main/java/org/apache/struts2/views/java/simple/TextAreaHandler.java
@@ -45,10 +45,17 @@
                 .addIfExists("class", params.get("cssClass"))

                 .addIfExists("style", params.get("cssStyle"))

                 .addIfExists("title", params.get("title"));

-        super.start("textarea", attrs);

-        String value = (String) params.get("nameValue");

-        if (TextUtils.stringSet(value))

-            characters(value);

-        super.end("textarea");

+        start("textarea", attrs);

+    }

+

+    public static class CloseHandler extends AbstractTagHandler implements TagGenerator {

+        @Override

+        public void generate() throws IOException {

+            Map<String, Object> params = context.getParameters();

+            String value = (String) params.get("nameValue");

+            if (TextUtils.stringSet(value))

+                characters(value);

+            end("textarea");

+        }

     }

 }
\ No newline at end of file
diff --git a/struts2-javatemplates-plugin/src/test/java/org/apache/struts2/views/java/simple/TextAreaTest.java b/struts2-javatemplates-plugin/src/test/java/org/apache/struts2/views/java/simple/TextAreaTest.java
index aa4e226..80145c8 100644
--- a/struts2-javatemplates-plugin/src/test/java/org/apache/struts2/views/java/simple/TextAreaTest.java
+++ b/struts2-javatemplates-plugin/src/test/java/org/apache/struts2/views/java/simple/TextAreaTest.java
@@ -44,12 +44,13 @@
         tag.evaluateParams();

         map.putAll(tag.getParameters());

         theme.renderTag(getTagName(), context);

+        theme.renderTag(getTagName() + "-close", context);

         String output = writer.getBuffer().toString();

         String expected = s("<textarea name='name' cols='2' rows='1' tabindex='1' id='id1' class='class1' style='style1' title='title'>val1</textarea>");

         assertEquals(expected, output);

     }

 

-     public void testRenderTextAreaDefaults() {

+    public void testRenderTextAreaDefaults() {

         tag.setValue("val1");

         tag.setDisabled("true");

         tag.setReadonly("true");

@@ -63,6 +64,7 @@
         tag.evaluateParams();

         map.putAll(tag.getParameters());

         theme.renderTag(getTagName(), context);

+        theme.renderTag(getTagName() + "-close", context);

         String output = writer.getBuffer().toString();

         String expected = s("<textarea name='' cols='' rows='' tabindex='1' id='id1' class='class1' style='style1' title='title'>val1</textarea>");

         assertEquals(expected, output);