public void afterPropertiesSet() throws Exception { super.afterPropertiesSet(); tilesRequestContextFactory = new ServletTilesRequestContextFactory(); tilesRequestContextFactory.init(new HashMap<String, String>()); }
@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); }
@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 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); }
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);
+ "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);