From 26778533efca905ef85adb596c09fa1af78c6f0f Mon Sep 17 00:00:00 2001 From: Lukasz Lenart Date: Thu, 30 May 2013 10:22:34 +0000 Subject: [PATCH] WW-4084 Restores appending s to tag which was broken since WW-3920 git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@1487806 13f79535-47bb-0310-9956-ffa450edef68 --- .../views/java/simple/AnchorHandler.java | 30 ++++++++----------- .../views/java/simple/SimpleTheme.java | 4 +-- 2 files changed, 15 insertions(+), 19 deletions(-) diff --git a/plugins/javatemplates/src/main/java/org/apache/struts2/views/java/simple/AnchorHandler.java b/plugins/javatemplates/src/main/java/org/apache/struts2/views/java/simple/AnchorHandler.java index 8d50341d1..570772c27 100644 --- a/plugins/javatemplates/src/main/java/org/apache/struts2/views/java/simple/AnchorHandler.java +++ b/plugins/javatemplates/src/main/java/org/apache/struts2/views/java/simple/AnchorHandler.java @@ -28,32 +28,28 @@ import java.io.IOException; import java.util.Map; public class AnchorHandler extends AbstractTagHandler implements TagGenerator { - public void generate() throws IOException { - Map params = context.getParameters(); - - Attributes attrs = new Attributes(); - attrs.addIfExists("name", params.get("name")) - .addIfExists("id", params.get("id")) - .addIfExists("class", params.get("cssClass")) - .addIfExists("style", params.get("cssStyle")) - .addIfExists("href", params.get("href"), false) - .addIfExists("title", params.get("title")) - .addIfExists("tabindex", params.get("tabindex")); - start("a", attrs); + //all rendering must happend at the end of the tag, so we can support nested params } public static class CloseHandler extends AbstractTagHandler implements TagGenerator { - public void generate() throws IOException { Map params = context.getParameters(); + + Attributes attrs = new Attributes(); + + attrs.addIfExists("name", params.get("name")) + .addIfExists("id", params.get("id")) + .addIfExists("class", params.get("cssClass")) + .addIfExists("style", params.get("cssStyle")) + .addIfExists("href", params.get("href"), false) + .addIfExists("title", params.get("title")) + .addIfExists("tabindex", params.get("tabindex")); + start("a", attrs); String body = (String) params.get("body"); - if (StringUtils.isNotEmpty(body)) { + if (StringUtils.isNotEmpty(body)) characters(body, false); - } end("a"); } - } - } diff --git a/plugins/javatemplates/src/main/java/org/apache/struts2/views/java/simple/SimpleTheme.java b/plugins/javatemplates/src/main/java/org/apache/struts2/views/java/simple/SimpleTheme.java index f30bcf0a9..363717be4 100644 --- a/plugins/javatemplates/src/main/java/org/apache/struts2/views/java/simple/SimpleTheme.java +++ b/plugins/javatemplates/src/main/java/org/apache/struts2/views/java/simple/SimpleTheme.java @@ -39,8 +39,8 @@ public class SimpleTheme extends DefaultTheme { put("select", new FactoryList(SelectHandler.class, ScriptingEventsHandler.class, CommonAttributesHandler.class, DynamicAttributesHandler.class)); put("form", new FactoryList(FormHandler.class, ScriptingEventsHandler.class, CommonAttributesHandler.class, DynamicAttributesHandler.class)); put("form-close", new FactoryList(FormHandler.CloseHandler.class)); - put("a", new FactoryList(AnchorHandler.class, ScriptingEventsHandler.class, CommonAttributesHandler.class, DynamicAttributesHandler.class)); - put("a-close", new FactoryList(AnchorHandler.CloseHandler.class)); + put("a", new FactoryList(AnchorHandler.class)); + put("a-close", new FactoryList(AnchorHandler.CloseHandler.class, ScriptingEventsHandler.class, CommonAttributesHandler.class, DynamicAttributesHandler.class)); put("checkbox", new FactoryList(CheckboxHandler.class, ScriptingEventsHandler.class, CommonAttributesHandler.class, DynamicAttributesHandler.class)); put("file", new FactoryList(FileHandler.class, ScriptingEventsHandler.class, CommonAttributesHandler.class, DynamicAttributesHandler.class)); put("password", new FactoryList(PasswordHandler.class, ScriptingEventsHandler.class, CommonAttributesHandler.class, DynamicAttributesHandler.class));