From e098c5a2c38f6e2b206aba4625849b05a0b57c5f Mon Sep 17 00:00:00 2001 From: Lukasz Lenart Date: Wed, 10 Nov 2021 08:33:47 +0100 Subject: [PATCH] WW-5129 Simplifies excluding ignored keys with ?filter --- .../template/simple/dynamic-attributes.ftl | 25 ++++++++----------- .../FreemarkerResultMockedTest.java | 13 ++-------- 2 files changed, 12 insertions(+), 26 deletions(-) diff --git a/core/src/main/resources/template/simple/dynamic-attributes.ftl b/core/src/main/resources/template/simple/dynamic-attributes.ftl index fe82ac698..47a91139f 100644 --- a/core/src/main/resources/template/simple/dynamic-attributes.ftl +++ b/core/src/main/resources/template/simple/dynamic-attributes.ftl @@ -18,27 +18,22 @@ * under the License. */ --> +<#function acceptKey(key)> + <#if dynamic_attributes_ignore??> + <#return !key?starts_with(dynamic_attributes_ignore) > + <#else> + <#return true> + + <#if (parameters.dynamicAttributes?? && parameters.dynamicAttributes?size > 0)><#rt/> <#assign aKeys = parameters.dynamicAttributes.keySet()><#rt/> -<#list aKeys as aKey><#rt/> -<#if dynamic_attributes_ignore??> -<#if !aKey?starts_with(dynamic_attributes_ignore)> +<#list aKeys?filter(acceptKey) as aKey><#rt/> <#assign keyValue = parameters.dynamicAttributes.get(aKey)/> <#if keyValue?is_string> - <#assign value = struts.translateVariables(keyValue)!keyValue/> + <#assign value = struts.translateVariables(keyValue)!keyValue/> <#else> - <#assign value = keyValue?string/> + <#assign value = keyValue?string/> ${aKey}="${value}"<#rt/> - -<#else> -<#assign keyValue = parameters.dynamicAttributes.get(aKey)/> -<#if keyValue?is_string> - <#assign value = struts.translateVariables(keyValue)!keyValue/> -<#else> - <#assign value = keyValue?string/> - - ${aKey}="${value}"<#rt/> - <#rt/> <#rt/> diff --git a/core/src/test/java/org/apache/struts2/views/freemarker/FreemarkerResultMockedTest.java b/core/src/test/java/org/apache/struts2/views/freemarker/FreemarkerResultMockedTest.java index a78bcf1a9..99cd4842a 100644 --- a/core/src/test/java/org/apache/struts2/views/freemarker/FreemarkerResultMockedTest.java +++ b/core/src/test/java/org/apache/struts2/views/freemarker/FreemarkerResultMockedTest.java @@ -113,12 +113,7 @@ public class FreemarkerResultMockedTest extends StrutsInternalTestCase { ActionMapping mapping = container.getInstance(ActionMapper.class).getMapping(request, configurationManager); dispatcher.serviceAction(request, response, mapping); - String expectedJDK17 = - "" - + "" - + "" - + ""; - String expectedJDK18 = + String expected = "" + "" + "" @@ -126,11 +121,7 @@ public class FreemarkerResultMockedTest extends StrutsInternalTestCase { String result = stringWriter.toString(); - if (result.contains("id=\"test\" foo=\"bar\"")) { - assertEquals(expectedJDK18, result); - } else { - assertEquals(expectedJDK17, result); - } + assertEquals(expected, result); } public void testManualListInTemplate() throws Exception {