ServletViewResponseWrapper wrappedResponse = new ServletViewResponseWrapper((HttpServletResponse) response); boolean errorResponse = wrappedResponse.getStatus() < 200 || wrappedResponse.getStatus() > 299; if (errorResponse) wrappedResponse.flushToWrappedResponse(); return false;
public void flushToWrappedResponse() throws IOException { if (_charArrayWriter != null) { _charArrayWriter.writeTo(getResponse().getWriter()); _charArrayWriter.reset(); _writer.flush(); } else if (_byteArrayWriter != null) { // MYFACES-1955 cannot call getWriter() after getOutputStream() // _byteArrayWriter is not null only if getOutputStream() was called // before. This method is called from f:view to flush data before tag // start, or if an error page is flushed after dispatch. // A resource inside /faces/* (see MYFACES-1815) is handled on flushToWriter. // If response.getOuputStream() was called before, an IllegalStateException // is raised on response.getWriter(), so we should try through stream. try { _byteArrayWriter.writeTo(getResponse().getWriter(), getResponse().getCharacterEncoding()); } catch (IllegalStateException e) { getResponse().getOutputStream().write(_byteArrayWriter.toByteArray()); } _byteArrayWriter.reset(); _byteArrayWriter.flush(); } }
@Override public int doStartTag() throws JspException { if (log.isLoggable(Level.FINEST)) { log.finest("entering ViewTag.doStartTag"); } FacesContext facesContext = FacesContext.getCurrentInstance(); Object response = facesContext.getExternalContext().getResponse(); if (response instanceof ServletViewResponseWrapper) { try { pageContext.getOut().flush(); ((ServletViewResponseWrapper)response).flushToWrappedResponse(); } catch (IOException e) { throw new JspException("Can't write content above <f:view> tag" + " " + e.getMessage()); } } int retVal = super.doStartTag(); Config.set(pageContext.getRequest(), Config.FMT_LOCALE, facesContext.getViewRoot().getLocale()); if (log.isLoggable(Level.FINEST)) { log.finest("leaving ViewTag.doStartTag"); } return retVal; }
afterViewTagResponse.flushToWriter(response.getWriter(), facesContext.getExternalContext().getResponseCharacterEncoding());
@Override public int doStartTag() throws JspException { if (log.isLoggable(Level.FINEST)) log.finest("entering ViewTag.doStartTag"); FacesContext facesContext = FacesContext.getCurrentInstance(); Object response = facesContext.getExternalContext().getResponse(); if (response instanceof ServletViewResponseWrapper) { try { pageContext.getOut().flush(); ((ServletViewResponseWrapper)response).flushToWrappedResponse(); } catch (IOException e) { throw new JspException("Can't write content above <f:view> tag" + " " + e.getMessage()); } } int retVal = super.doStartTag(); Config.set(pageContext.getRequest(), Config.FMT_LOCALE, facesContext.getViewRoot().getLocale()); if (log.isLoggable(Level.FINEST)) log.finest("leaving ViewTag.doStartTag"); return retVal; }
afterViewTagResponse.flushToWriter(response.getWriter(), facesContext.getExternalContext().getResponseCharacterEncoding());
ServletViewResponseWrapper wrappedResponse = new ServletViewResponseWrapper((HttpServletResponse) response); boolean errorResponse = wrappedResponse.getStatus() < 200 || wrappedResponse.getStatus() > 299; if (errorResponse) wrappedResponse.flushToWrappedResponse(); return false;
public void flushToWrappedResponse() throws IOException { if (_charArrayWriter != null) { _charArrayWriter.writeTo(getResponse().getWriter()); _charArrayWriter.reset(); _writer.flush(); } else if (_byteArrayWriter != null) { // MYFACES-1955 cannot call getWriter() after getOutputStream() // _byteArrayWriter is not null only if getOutputStream() was called // before. This method is called from f:view to flush data before tag // start, or if an error page is flushed after dispatch. // A resource inside /faces/* (see MYFACES-1815) is handled on flushToWriter. // If response.getOuputStream() was called before, an IllegalStateException // is raised on response.getWriter(), so we should try through stream. try { _byteArrayWriter.writeTo(getResponse().getWriter(), getResponse().getCharacterEncoding()); } catch (IllegalStateException e) { getResponse().getOutputStream().write(_byteArrayWriter.toByteArray()); } _byteArrayWriter.reset(); _byteArrayWriter.flush(); } }
@Override public int doStartTag() throws JspException { if (log.isLoggable(Level.FINEST)) log.finest("entering ViewTag.doStartTag"); FacesContext facesContext = FacesContext.getCurrentInstance(); Object response = facesContext.getExternalContext().getResponse(); if (response instanceof ServletViewResponseWrapper) { try { pageContext.getOut().flush(); ((ServletViewResponseWrapper)response).flushToWrappedResponse(); } catch (IOException e) { throw new JspException("Can't write content above <f:view> tag" + " " + e.getMessage()); } } int retVal = super.doStartTag(); Config.set(pageContext.getRequest(), Config.FMT_LOCALE, facesContext.getViewRoot().getLocale()); if (log.isLoggable(Level.FINEST)) log.finest("leaving ViewTag.doStartTag"); return retVal; }
ServletViewResponseWrapper wrappedResponse = new ServletViewResponseWrapper((HttpServletResponse) response); boolean errorResponse = wrappedResponse.getStatus() < 200 || wrappedResponse.getStatus() > 299; if (errorResponse) wrappedResponse.flushToWrappedResponse(); return;
public void flushToWrappedResponse() throws IOException { if (_charArrayWriter != null) { _charArrayWriter.writeTo(getResponse().getWriter()); _charArrayWriter.reset(); _writer.flush(); } else if (_byteArrayWriter != null) { // MYFACES-1955 cannot call getWriter() after getOutputStream() // _byteArrayWriter is not null only if getOutputStream() was called // before. This method is called from f:view to flush data before tag // start, or if an error page is flushed after dispatch. // A resource inside /faces/* (see MYFACES-1815) is handled on flushToWriter. // If response.getOuputStream() was called before, an IllegalStateException // is raised on response.getWriter(), so we should try through stream. try { _byteArrayWriter.writeTo(getResponse().getWriter(), getResponse().getCharacterEncoding()); } catch (IllegalStateException e) { getResponse().getOutputStream().write(_byteArrayWriter.toByteArray()); } _byteArrayWriter.reset(); _byteArrayWriter.flush(); } }
ServletViewResponseWrapper wrappedResponse = new ServletViewResponseWrapper((HttpServletResponse) response); boolean errorResponse = wrappedResponse.getStatus() < 200 || wrappedResponse.getStatus() > 299; if (errorResponse) wrappedResponse.flushToWrappedResponse(); return;
ServletViewResponseWrapper wrappedResponse = new ServletViewResponseWrapper((HttpServletResponse) response); boolean errorResponse = wrappedResponse.getStatus() < 200 || wrappedResponse.getStatus() > 299; if (errorResponse) wrappedResponse.flushToWrappedResponse(); return;