private void flattenAttributeMap(BasicTilesContainer container, TilesRequestContext requestContext, Map resultMap, Definition compositeDefinition) throws Exception { Iterator i = compositeDefinition.getAttributes().keySet().iterator(); while (i.hasNext()) { Object key = i.next(); Attribute attr = (Attribute) compositeDefinition.getAttributes().get(key); Definition nestedDefinition = container.getDefinitionsFactory().getDefinition(attr.getValue().toString(), requestContext); resultMap.put(key, attr); if (nestedDefinition != null) { flattenAttributeMap(container, requestContext, resultMap, nestedDefinition); } } } }