@Override protected AbstractTilesContainerFactory createContainerFactory(TilesApplicationContext context) { return new SpringCompleteAutoloadTilesContainerFactory(); } }
@Override protected LocaleResolver createLocaleResolver(TilesApplicationContext applicationContext, TilesRequestContextFactory contextFactory) { return new SpringLocaleResolver(); }
/** * Creates a new instance of {@code SpringTilesInitializer}. * <p>Override it to use a different initializer. * @see org.apache.tiles.web.startup.AbstractTilesListener#createTilesInitializer() */ protected TilesInitializer createTilesInitializer() { return new SpringTilesInitializer(); }
@Override protected void renderMergedOutputModel( Map<String, Object> model, HttpServletRequest request, HttpServletResponse response) throws Exception { ServletContext servletContext = getServletContext(); TilesContainer container = ServletUtil.getContainer(servletContext); if (container == null) { throw new ServletException("Tiles container is not initialized. " + "Have you added a TilesConfigurer to your web application context?"); } exposeModelAsRequestAttributes(model, request); JstlUtils.exposeLocalizationContext(new RequestContext(request, servletContext)); if (this.alwaysInclude) { ServletUtil.setForceInclude(request, true); } container.render(getUrl(), request, response); }
logger.warn("An Ajax request was detected, but no fragments were specified to be re-rendered. " + "Falling back to full page render."); super.renderMergedOutputModel(model, request, response); super.renderMergedOutputModel(model, request, response);
public TilesViewResolver() { setViewClass(requiredViewClass()); }
/** * Creates and exposes a TilesContainer for this web application, * delegating to the TilesInitializer. * @throws TilesException in case of setup failure */ @Override public void afterPropertiesSet() throws TilesException { TilesApplicationContext preliminaryContext = new SpringWildcardServletTilesApplicationContext(this.servletContext); if (this.tilesInitializer == null) { this.tilesInitializer = createTilesInitializer(); } this.tilesInitializer.initialize(preliminaryContext); }
@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); }
@Override protected AbstractTilesContainerFactory createContainerFactory(TilesApplicationContext context) { return new SpringTilesContainerFactory(); } }
/** * Specify whether to apply Tiles 2.2's "complete-autoload" configuration. * <p>See {@link org.apache.tiles.extras.complete.CompleteAutoloadTilesContainerFactory} * for details on the complete-autoload mode. * <p><b>NOTE: Specifying the complete-autoload mode effectively disables all other bean * properties on this configurer.</b> The entire initialization procedure is then left * to {@link org.apache.tiles.extras.complete.CompleteAutoloadTilesInitializer}. * @see org.apache.tiles.extras.complete.CompleteAutoloadTilesContainerFactory * @see org.apache.tiles.extras.complete.CompleteAutoloadTilesInitializer */ public void setCompleteAutoload(boolean completeAutoload) { if (completeAutoload) { try { this.tilesInitializer = new SpringCompleteAutoloadTilesInitializer(); } catch (Throwable ex) { throw new IllegalStateException("Tiles-Extras 2.2 not available", ex); } } else { this.tilesInitializer = null; } }
@Override protected AbstractUrlBasedView buildView(String viewName) throws Exception { TilesView view = (TilesView) super.buildView(viewName); if (this.alwaysInclude != null) { view.setAlwaysInclude(this.alwaysInclude); } return view; }
@Override public URL getResource(String path) throws IOException { Set<URL> urlSet = getResources(path); if (!CollectionUtils.isEmpty(urlSet)) { return urlSet.iterator().next(); } return null; }
public void afterPropertiesSet() throws Exception { super.afterPropertiesSet(); tilesRequestContextFactory = new ServletTilesRequestContextFactory(); tilesRequestContextFactory.init(new HashMap<String, String>()); }
@Override public ViewPreparer getPreparer(String name, TilesRequestContext context) throws TilesException { WebApplicationContext webApplicationContext = (WebApplicationContext) context.getRequestScope().get( DispatcherServlet.WEB_APPLICATION_CONTEXT_ATTRIBUTE); if (webApplicationContext == null) { webApplicationContext = (WebApplicationContext) context.getApplicationContext().getApplicationScope().get( WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE); if (webApplicationContext == null) { throw new IllegalStateException("No WebApplicationContext found: no ContextLoaderListener registered?"); } } return getPreparer(name, webApplicationContext); }
@Override protected AttributeEvaluatorFactory createAttributeEvaluatorFactory(TilesApplicationContext applicationContext, TilesRequestContextFactory contextFactory, LocaleResolver resolver) { AttributeEvaluator evaluator; if (tilesElPresent && JspFactory.getDefaultFactory() != null) { evaluator = TilesElActivator.createEvaluator(applicationContext); } else { evaluator = new DirectAttributeEvaluator(); } return new BasicAttributeEvaluatorFactory(evaluator); } }
@Override protected DefinitionsFactory createDefinitionsFactory(TilesApplicationContext applicationContext, TilesRequestContextFactory contextFactory, LocaleResolver resolver) { if (definitionsFactoryClass != null) { DefinitionsFactory factory = BeanUtils.instantiate(definitionsFactoryClass); if (factory instanceof TilesApplicationContextAware) { ((TilesApplicationContextAware) factory).setApplicationContext(applicationContext); } BeanWrapper bw = PropertyAccessorFactory.forBeanPropertyAccess(factory); if (bw.isWritableProperty("localeResolver")) { bw.setPropertyValue("localeResolver", resolver); } if (bw.isWritableProperty("definitionDAO")) { bw.setPropertyValue("definitionDAO", createLocaleDefinitionDao(applicationContext, contextFactory, resolver)); } if (factory instanceof Refreshable) { ((Refreshable) factory).refresh(); } return factory; } else { return super.createDefinitionsFactory(applicationContext, contextFactory, resolver); } }
+ "Falling back to full page render. This can cause unpredictable results when processing " + "the ajax response on the client."); super.renderMergedOutputModel(model, request, response); return; super.renderMergedOutputModel(model, request, response);
@Override protected LocaleResolver createLocaleResolver(TilesApplicationContext applicationContext, TilesRequestContextFactory contextFactory) { return new SpringLocaleResolver(); } }