diff --git a/plugins/tiles/src/main/java/org/apache/struts2/tiles/StrutsTilesContainerFactory.java b/plugins/tiles/src/main/java/org/apache/struts2/tiles/StrutsTilesContainerFactory.java index fe90d75a2..a8e77cec8 100644 --- a/plugins/tiles/src/main/java/org/apache/struts2/tiles/StrutsTilesContainerFactory.java +++ b/plugins/tiles/src/main/java/org/apache/struts2/tiles/StrutsTilesContainerFactory.java @@ -19,6 +19,7 @@ package org.apache.struts2.tiles; +import com.opensymphony.xwork2.util.TextParseUtil; import ognl.OgnlException; import ognl.OgnlRuntime; import ognl.PropertyAccessor; @@ -71,6 +72,7 @@ import java.util.Collection; import java.util.List; import java.util.Locale; import java.util.Map; +import java.util.Set; /** * Dedicated Struts factory to build Tiles container with support for: @@ -176,25 +178,28 @@ public class StrutsTilesContainerFactory extends BasicTilesContainerFactory { @Override protected List getSources(ApplicationContext applicationContext) { - Collection resources = applicationContext.getResources(getTilesDefinitionPattern(applicationContext.getInitParams())); + Collection resources = new ArrayList<>(); + + Set definitions = getTilesDefinitions(applicationContext.getInitParams()); + for (String definition : definitions) { + resources.addAll(applicationContext.getResources(definition)); + } List filteredResources = new ArrayList<>(); - if (resources != null) { - for (ApplicationResource resource : resources) { - if (Locale.ROOT.equals(resource.getLocale())) { - filteredResources.add(resource); - } + for (ApplicationResource resource : resources) { + if (Locale.ROOT.equals(resource.getLocale())) { + filteredResources.add(resource); } } return filteredResources; } - protected String getTilesDefinitionPattern(Map params) { + protected Set getTilesDefinitions(Map params) { if (params.containsKey(DefinitionsFactory.DEFINITIONS_CONFIG)) { - return params.get(DefinitionsFactory.DEFINITIONS_CONFIG); + return TextParseUtil.commaDelimitedStringToSet(params.get(DefinitionsFactory.DEFINITIONS_CONFIG)); } - return TILES_DEFAULT_PATTERN; + return TextParseUtil.commaDelimitedStringToSet(TILES_DEFAULT_PATTERN); } protected ELAttributeEvaluator createELEvaluator(ApplicationContext applicationContext) {