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);