Author: lukaszlenart Date: Mon Jan 21 21:47:13 2013 New Revision: 1436637 URL: http://svn.apache.org/viewvc?rev=1436637&view=rev Log: WW-3920 adds support for scripting events
Modified: struts/struts2/trunk/plugins/javatemplates/src/main/java/org/apache/struts2/views/java/simple/AnchorHandler.java struts/struts2/trunk/plugins/javatemplates/src/test/java/org/apache/struts2/views/java/simple/AnchorTest.java Modified: struts/struts2/trunk/plugins/javatemplates/src/main/java/org/apache/struts2/views/java/simple/AnchorHandler.java URL: http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/javatemplates/src/main/java/org/apache/struts2/views/java/simple/AnchorHandler.java?rev=1436637&r1=1436636&r2=1436637&view=diff ============================================================================== --- struts/struts2/trunk/plugins/javatemplates/src/main/java/org/apache/struts2/views/java/simple/AnchorHandler.java (original) +++ struts/struts2/trunk/plugins/javatemplates/src/main/java/org/apache/struts2/views/java/simple/AnchorHandler.java Mon Jan 21 21:47:13 2013 @@ -20,36 +20,40 @@ */ package org.apache.struts2.views.java.simple; +import org.apache.commons.lang3.StringUtils; import org.apache.struts2.views.java.Attributes; import org.apache.struts2.views.java.TagGenerator; -import org.apache.commons.lang3.StringUtils; import java.io.IOException; import java.util.Map; public class AnchorHandler extends AbstractTagHandler implements TagGenerator { + public void generate() throws IOException { - //all rendering must happend at the end of the tag, so we can support nested params + Map<String, Object> 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); } public static class CloseHandler extends AbstractTagHandler implements TagGenerator { + public void generate() throws IOException { Map<String, Object> 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"); } + } + } Modified: struts/struts2/trunk/plugins/javatemplates/src/test/java/org/apache/struts2/views/java/simple/AnchorTest.java URL: http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/javatemplates/src/test/java/org/apache/struts2/views/java/simple/AnchorTest.java?rev=1436637&r1=1436636&r2=1436637&view=diff ============================================================================== --- struts/struts2/trunk/plugins/javatemplates/src/test/java/org/apache/struts2/views/java/simple/AnchorTest.java (original) +++ struts/struts2/trunk/plugins/javatemplates/src/test/java/org/apache/struts2/views/java/simple/AnchorTest.java Mon Jan 21 21:47:13 2013 @@ -46,6 +46,28 @@ public class AnchorTest extends Abstract assertEquals(expected, output); } + public void testRenderScriptingEvents() { + tag.setName("name_"); + tag.setOnclick("alert('click')"); + tag.setOnchange("alert('change)"); + tag.setOnfocus("alert('focus')"); + tag.setOnselect("alert('select')"); + tag.setOndblclick("alert('dbclick')"); + tag.setOnkeydown("alert('keydown')"); + tag.setOnkeypress("alert('keypress')"); + tag.setHref("http://sometest.com?ab=10"); + + tag.evaluateParams(); + map.putAll(tag.getParameters()); + theme.renderTag(getTagName(), context); + theme.renderTag(getTagName() + "-close", context); + String output = writer.getBuffer().toString(); + String expected = "<a name=\"name_\" id=\"name_\" href=\"http://sometest.com?ab=10\" onclick=\"alert('click')\" " + + "ondblclick=\"alert('dbclick')\" onfocus=\"alert('focus')\" onkeypress=\"alert('keypress')\" " + + "onkeydown=\"alert('keydown')\" onselect=\"alert('select')\" onchange=\"alert('change)\"></a>"; + assertEquals(expected, output); + } + @Override protected void setUp() throws Exception { super.setUp();