@Override protected TilesView buildView(String viewName) throws Exception { TilesView view = (TilesView) super.buildView(viewName); if (this.renderer != null) { view.setRenderer(this.renderer); } if (this.alwaysInclude != null) { view.setAlwaysInclude(this.alwaysInclude); } return view; }
@Override protected void renderMergedOutputModel(Map<String, Object> model, HttpServletRequest request, HttpServletResponse response) throws Exception { Assert.state(this.renderer != null, "No Renderer set"); exposeModelAsRequestAttributes(model, request); if (this.exposeJstlAttributes) { JstlUtils.exposeLocalizationContext(new RequestContext(request, getServletContext())); } if (this.alwaysInclude) { request.setAttribute(AbstractRequest.FORCE_INCLUDE_ATTRIBUTE_NAME, true); } Request tilesRequest = createTilesRequest(request, response); this.renderer.render(getUrl(), tilesRequest); }
@Test public void alwaysIncludeEnabled() throws Exception { view.setAlwaysInclude(true); view.render(new HashMap<>(), request, response); assertTrue((Boolean)request.getAttribute(AbstractRequest.FORCE_INCLUDE_ATTRIBUTE_NAME)); }
@Override protected void renderMergedOutputModel(Map<String, Object> model, HttpServletRequest request, HttpServletResponse response) throws Exception { exposeModelAsRequestAttributes(model, request); if (this.exposeJstlAttributes) { JstlUtils.exposeLocalizationContext(new RequestContext(request, getServletContext())); } if (this.alwaysInclude) { request.setAttribute(AbstractRequest.FORCE_INCLUDE_ATTRIBUTE_NAME, true); } Request tilesRequest = createTilesRequest(request, response); this.renderer.render(getUrl(), tilesRequest); }
@Before public void setUp() throws Exception { MockServletContext servletContext = new MockServletContext(); StaticWebApplicationContext wac = new StaticWebApplicationContext(); wac.setServletContext(servletContext); wac.refresh(); request = new MockHttpServletRequest(); request.setAttribute(DispatcherServlet.WEB_APPLICATION_CONTEXT_ATTRIBUTE, wac); response = new MockHttpServletResponse(); renderer = mock(Renderer.class); view = new TilesView(); view.setServletContext(servletContext); view.setRenderer(renderer); view.setUrl(VIEW_PATH); view.afterPropertiesSet(); }
@Override public void afterPropertiesSet() throws Exception { super.afterPropertiesSet(); ServletContext servletContext = getServletContext(); Assert.state(servletContext != null, "No ServletContext"); this.applicationContext = ServletUtil.getApplicationContext(servletContext); if (this.renderer == null) { TilesContainer container = TilesAccess.getContainer(this.applicationContext); this.renderer = new DefinitionRenderer(container); } }
+ "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 public boolean checkResource(final Locale locale) throws Exception { Assert.state(this.renderer != null, "No Renderer set"); HttpServletRequest servletRequest = null; RequestAttributes requestAttributes = RequestContextHolder.getRequestAttributes(); if (requestAttributes instanceof ServletRequestAttributes) { servletRequest = ((ServletRequestAttributes) requestAttributes).getRequest(); } Request request = new ServletRequest(this.applicationContext, servletRequest, null) { @Override public Locale getRequestLocale() { return locale; } }; return this.renderer.isRenderable(getUrl(), request); }
@Override protected TilesView buildView(String viewName) throws Exception { TilesView view = (TilesView) super.buildView(viewName); view.setRenderer(this.renderer); return view; }
@Override public void afterPropertiesSet() throws Exception { super.afterPropertiesSet(); ServletContext servletContext = getServletContext(); Assert.state(servletContext != null, "No ServletContext"); this.applicationContext = ServletUtil.getApplicationContext(servletContext); if (this.renderer == null) { TilesContainer container = TilesAccess.getContainer(this.applicationContext); this.renderer = new DefinitionRenderer(container); } }
super.renderMergedOutputModel(model, request, response);
@Override public boolean checkResource(final Locale locale) throws Exception { Assert.state(this.renderer != null, "No Renderer set"); HttpServletRequest servletRequest = null; RequestAttributes requestAttributes = RequestContextHolder.getRequestAttributes(); if (requestAttributes instanceof ServletRequestAttributes) { servletRequest = ((ServletRequestAttributes) requestAttributes).getRequest(); } Request request = new ServletRequest(this.applicationContext, servletRequest, null) { @Override public Locale getRequestLocale() { return locale; } }; return this.renderer.isRenderable(getUrl(), request); }
@Override protected void renderMergedOutputModel(Map<String, Object> model, HttpServletRequest request, HttpServletResponse response) throws Exception { Assert.state(this.renderer != null, "No Renderer set"); exposeModelAsRequestAttributes(model, request); if (this.exposeJstlAttributes) { JstlUtils.exposeLocalizationContext(new RequestContext(request, getServletContext())); } if (this.alwaysInclude) { request.setAttribute(AbstractRequest.FORCE_INCLUDE_ATTRIBUTE_NAME, true); } Request tilesRequest = createTilesRequest(request, response); this.renderer.render(getUrl(), tilesRequest); }
@Override protected TilesView buildView(String viewName) throws Exception { TilesView view = (TilesView) super.buildView(viewName); if (this.renderer != null) { view.setRenderer(this.renderer); } if (this.alwaysInclude != null) { view.setAlwaysInclude(this.alwaysInclude); } return view; }
@Override public void afterPropertiesSet() throws Exception { super.afterPropertiesSet(); this.applicationContext = ServletUtil.getApplicationContext(getServletContext()); if (this.renderer == null) { TilesContainer container = TilesAccess.getContainer(this.applicationContext); this.renderer = new DefinitionRenderer(container); } }
+ "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 public boolean checkResource(final Locale locale) throws Exception { Request request = new ServletRequest(this.applicationContext, null, null) { @Override public Locale getRequestLocale() { return locale; } }; return this.renderer.isRenderable(getUrl(), request); }
@Override protected void renderMergedOutputModel(Map<String, Object> model, HttpServletRequest request, HttpServletResponse response) throws Exception { exposeModelAsRequestAttributes(model, request); if (this.exposeJstlAttributes) { ServletContext servletContext = getServletContext(); JstlUtils.exposeLocalizationContext(new RequestContext(request, servletContext)); } if (!response.isCommitted()) { // Tiles is going to use a forward, but some web containers (e.g. // OC4J 10.1.3) // do not properly expose the Servlet 2.4 forward request // attributes... However, // must not do this on Servlet 2.5 or above, mainly for GlassFish // compatibility. if (this.exposeForwardAttributes) { try { WebUtils.exposeForwardRequestAttributes(request); } catch (Exception ex) { // Servlet container rejected to set internal attributes, // e.g. on TriFork. this.exposeForwardAttributes = false; } } } Request tilesRequest = createTilesRequest(request, response); this.renderer.render(getUrl(), tilesRequest); }
@Override protected TilesView buildView(String viewName) throws Exception { TilesView view = (TilesView) super.buildView(viewName); if (this.renderer != null) { view.setRenderer(this.renderer); } if (this.alwaysInclude != null) { view.setAlwaysInclude(this.alwaysInclude); } return view; }
@Override public void afterPropertiesSet() throws Exception { super.afterPropertiesSet(); this.applicationContext = ServletUtil.getApplicationContext(getServletContext()); if (this.renderer == null) { TilesContainer container = TilesAccess.getContainer(this.applicationContext); this.renderer = new DefinitionRenderer(container); } }