@Test public void simpleBootstrap() { MockServletContext servletContext = new MockServletContext(); TilesConfigurer tc = new TilesConfigurer(); tc.setDefinitions("/org/springframework/web/servlet/view/tiles3/tiles-definitions.xml"); tc.setCheckRefresh(true); tc.setServletContext(servletContext); tc.afterPropertiesSet(); ApplicationContext tilesContext = ServletUtil.getApplicationContext(servletContext); BasicTilesContainer container = (BasicTilesContainer) TilesAccess.getContainer(tilesContext); Request requestContext = new ServletRequest(container.getApplicationContext(), new MockHttpServletRequest(), new MockHttpServletResponse()); assertNotNull(container.getDefinitionsFactory().getDefinition("test", requestContext)); tc.destroy(); }
} else if (container.isValidDefinition(value, tilesRequest)) { resultMap.put(attributeName, attribute); Definition nestedDefinition = container.getDefinitionsFactory().getDefinition(value, tilesRequest); Assert.isTrue(nestedDefinition != definition, "Circular nested definition: " + value); flattenAttributeMap(container, tilesRequest, resultMap, nestedDefinition);
/** {@inheritDoc} */ @Override public Definition getDefinition(String definitionName, Request request) { Definition definition = definitionsFactory.getDefinition(definitionName, request); return definition; }
JstlUtils.exposeLocalizationContext(new RequestContext(request, servletContext)); Definition compositeDefinition = container.getDefinitionsFactory().getDefinition(getUrl(), tilesRequest);
/** * Returns a definition specifying its name. * * @param definitionName The name of the definition to find. * @param request The request context. * @return The definition, if found. * @throws DefinitionsFactoryException If the definitions factory throws an * exception. */ protected Definition getDefinition(String definitionName, TilesRequestContext request) { Definition definition = definitionsFactory.getDefinition(definitionName, request); return definition; }
/** * Returns a definition by name. * * @param definition The name of the definition. * @param request The current request. * @return The requested definition, either main or custom. * @throws org.apache.tiles.definition.DefinitionsFactoryException If * something goes wrong when obtaining a main definition. */ public Definition getDefinition(String definition, TilesRequestContext request) { Map<String, Definition> definitions = getDefinitions(request); if (definitions != null && definitions.containsKey(definition)) { return definitions.get(definition); } return getFactory().getDefinition(definition, request); }
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); } } } }
/** {@inheritDoc} */ @Override protected Definition getDefinition(String definitionName, TilesRequestContext request) { Definition retValue = null; String key = getDefinitionsFactoryKey(request); if (key != null) { DefinitionsFactory definitionsFactory = key2definitionsFactory.get(key); if (definitionsFactory != null) { retValue = definitionsFactory.getDefinition(definitionName, request); } } if (retValue == null) { retValue = super.getDefinition(definitionName, request); } return retValue; }
} else if (container.isValidDefinition(value, new Object[] { request, response })) { resultMap.put(attributeName, attribute); Definition nestedDefinition = container.getDefinitionsFactory().getDefinition(value, requestContext); Assert.isTrue(nestedDefinition != compositeDefinition, "Circular nested definition: " + value); flattenAttributeMap(container, requestContext, resultMap, nestedDefinition, request, response);
} else if (container.isValidDefinition(value, tilesRequest)) { resultMap.put(attributeName, attribute); Definition nestedDefinition = container.getDefinitionsFactory().getDefinition(value, tilesRequest); Assert.isTrue(nestedDefinition != definition, "Circular nested definition: " + value); flattenAttributeMap(container, tilesRequest, resultMap, nestedDefinition);
} else if (container.isValidDefinition(value, tilesRequest)) { resultMap.put(attributeName, attribute); Definition nestedDefinition = container.getDefinitionsFactory().getDefinition(value, tilesRequest); Assert.isTrue(nestedDefinition != definition, "Circular nested definition: " + value); flattenAttributeMap(container, tilesRequest, resultMap, nestedDefinition);
final Definition nestedDefinition = container.getDefinitionsFactory().getDefinition(value, requestContext); flattenAttributeMap(container, requestContext, resultMap, nestedDefinition, request, response);
final Definition nestedDefinition = container.getDefinitionsFactory().getDefinition(value, requestContext); flattenAttributeMap(container, requestContext, resultMap, nestedDefinition, request, response);
final Definition nestedDefinition = container.getDefinitionsFactory().getDefinition(value, requestContext); flattenAttributeMap(container, requestContext, resultMap, nestedDefinition, request, response);
Definition compositeDefinition = container.getDefinitionsFactory().getDefinition(getUrl(), tilesRequestContext); Map flattenedAttributeMap = new HashMap();
@Override public boolean checkResource(final Locale locale) throws Exception { TilesContainer container = ServletUtil.getContainer(getServletContext()); if (!(container instanceof BasicTilesContainer)) { // Cannot check properly - let's assume it's there. return true; } BasicTilesContainer basicContainer = (BasicTilesContainer) container; TilesApplicationContext appContext = new ServletTilesApplicationContext(getServletContext()); TilesRequestContext requestContext = new ServletTilesRequestContext(appContext, null, null) { @Override public Locale getRequestLocale() { return locale; } }; return (basicContainer.getDefinitionsFactory().getDefinition(getUrl(), requestContext) != null); }
public void testFlattenAttributeMap() throws Exception { ApplicationContext tilesAppContext = new WildcardServletApplicationContext(servletContext); Request tilesRequest = new ServletRequest(tilesAppContext, request, response); BasicTilesContainer container = (BasicTilesContainer) TilesAccess.getContainer(tilesAppContext); Definition compositeDefinition = container.getDefinitionsFactory().getDefinition("search", tilesRequest); Map<String, Attribute> resultMap = new HashMap<>(); ajaxTilesView.flattenAttributeMap(container, tilesRequest, resultMap, compositeDefinition); assertNotNull(resultMap.get("body")); assertNotNull(resultMap.get("searchForm")); assertEquals("/WEB-INF/searchForm.jsp", resultMap.get("searchForm").toString()); assertNotNull(resultMap.get("searchResults")); }
JstlUtils.exposeLocalizationContext(new RequestContext(request, servletContext)); Definition compositeDefinition = container.getDefinitionsFactory().getDefinition(getUrl(), tilesRequest);
JstlUtils.exposeLocalizationContext(new RequestContext(request, servletContext)); Definition compositeDefinition = container.getDefinitionsFactory().getDefinition(getUrl(), tilesRequest);
public void testRenderFragment_InheritCascadedAttribute() throws Exception { ApplicationContext tilesAppContext = new WildcardServletApplicationContext(servletContext); Request tilesRequest = new ServletRequest(tilesAppContext, request, response); BasicTilesContainer container = (BasicTilesContainer) TilesAccess.getContainer(tilesAppContext); Definition definition = container.getDefinitionsFactory().getDefinition("search.body", tilesRequest); definition.setPreparer(AttributeTestingPreparer.class.getName()); setupStaticWebApplicationContext(); request.addHeader("Accept", DefaultAjaxHandler.AJAX_ACCEPT_CONTENT_TYPE); request.addParameter("fragments", "body"); ajaxTilesView.setUrl("search"); ajaxTilesView.afterPropertiesSet(); ajaxTilesView.renderMergedOutputModel(new HashMap<>(), request, response); assertTrue(AttributeTestingPreparer.invoked); }