From b70bdeefdab8e19394a3bb48064d6f00b5029819 Mon Sep 17 00:00:00 2001 From: Lukasz Lenart Date: Tue, 29 May 2012 12:43:59 +0000 Subject: [PATCH] WW-3828 adds support for dynamic attributes not only for String literals but for other objects git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@1343701 13f79535-47bb-0310-9956-ffa450edef68 --- .../main/resources/template/simple/dynamic-attributes.ftl | 6 +++++- .../struts2/views/freemarker/FreeMarkerResultTest.java | 3 ++- .../org/apache/struts2/views/freemarker/dynaAttributes.ftl | 3 ++- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/core/src/main/resources/template/simple/dynamic-attributes.ftl b/core/src/main/resources/template/simple/dynamic-attributes.ftl index dc5c3be85..485c20cc0 100644 --- a/core/src/main/resources/template/simple/dynamic-attributes.ftl +++ b/core/src/main/resources/template/simple/dynamic-attributes.ftl @@ -24,7 +24,11 @@ <#assign aKeys = parameters.dynamicAttributes.keySet()><#rt/> <#list aKeys as aKey><#rt/> <#assign keyValue = parameters.dynamicAttributes[aKey]/> - <#assign value = struts.translateVariables(keyValue)!keyValue/> + <#if keyValue?is_string> + <#assign value = struts.translateVariables(keyValue)!keyValue/> + <#else> + <#assign value = keyValue?string/> + ${aKey}="${value?html}"<#rt/> <#rt/> <#rt/> \ No newline at end of file diff --git a/core/src/test/java/org/apache/struts2/views/freemarker/FreeMarkerResultTest.java b/core/src/test/java/org/apache/struts2/views/freemarker/FreeMarkerResultTest.java index cf6ab00d5..04a185e84 100644 --- a/core/src/test/java/org/apache/struts2/views/freemarker/FreeMarkerResultTest.java +++ b/core/src/test/java/org/apache/struts2/views/freemarker/FreeMarkerResultTest.java @@ -216,7 +216,8 @@ public class FreeMarkerResultTest extends StrutsTestCase { ActionMapping mapping = dispatcher.getContainer().getInstance(ActionMapper.class).getMapping(request, dispatcher.getConfigurationManager()); dispatcher.serviceAction(request, response, servletContext, mapping); String expected = "" - + ""; + + "" + + ""; assertEquals(expected, stringWriter.toString()); } diff --git a/core/src/test/resources/org/apache/struts2/views/freemarker/dynaAttributes.ftl b/core/src/test/resources/org/apache/struts2/views/freemarker/dynaAttributes.ftl index 3c80da3fb..f26c61d30 100644 --- a/core/src/test/resources/org/apache/struts2/views/freemarker/dynaAttributes.ftl +++ b/core/src/test/resources/org/apache/struts2/views/freemarker/dynaAttributes.ftl @@ -21,4 +21,5 @@ */ --> <@s.textfield name="test" dynamicAttributes={"placeholder":"input","foo":"bar"}/> -<@s.textfield name="test" placeholder="input" foo="bar"/> \ No newline at end of file +<@s.textfield name="test" placeholder="input" foo="bar"/> +<@s.textfield name="test" break=true /> \ No newline at end of file