@Override public void redirect(String url) throws IOException { wrapped.redirect(url); }
@Override public void redirect(String url) throws IOException { wrappedPartialResponseWriter.redirect(url); }
@Override public void redirect(String url) throws IOException { wrappedPartialResponseWriter.redirect(url); }
@Override public void redirect(String url) throws IOException { wrapped.redirect(url); }
@Override public void redirect(String url) throws IOException { wrapped.redirect(url); }
@Override public void redirect(String url) throws IOException { wrapped.redirect(url); }
@Override public void redirect(String url) throws IOException { wrapped.redirect(url); }
@Override public void redirect(String url) throws IOException { wrappedPartialResponseWriter.redirect(url); }
@Override public void redirect(String url) throws IOException { wrapped.redirect(url); }
public void handle() throws FacesException { FacesContext fc = FacesContext.getCurrentInstance(); for (Iterator<ExceptionQueuedEvent> iter = getUnhandledExceptionQueuedEvents().iterator(); iter.hasNext(); ) { ExceptionQueuedEvent event = iter.next(); ExceptionQueuedEventContext queueContext = (ExceptionQueuedEventContext) event.getSource(); Throwable ex = queueContext.getException(); //walk back to the original cause of the exception while (ex.getCause() != null) { ex = ex.getCause(); } String redirectURL = mapping.get(ex.getClass()); if (redirectURL != null) { PartialResponseWriter writer = fc.getPartialViewContext().getPartialResponseWriter(); String uri = fc.getApplication().getViewHandler().getResourceURL(fc, redirectURL); try { writer.startDocument(); writer.redirect(uri); writer.endDocument(); fc.responseComplete(); return; } catch (IOException e) { throw new FacesException(e); } } } handler.handle(); }
protected void sendAjaxRedirectInternal(final String targetUrl, final HttpServletRequest request, final HttpServletResponse response, boolean popup) throws IOException { // Ideally facesContext.getExternalContext().redirect() should be used instead of the code in this method. // However PartialViewContextImpl.createPartialResponseWriter() calls cxt.getRenderKit(), which in turn // tries to get the UIViewRoot's renderKitId. That results in NPE when JsfAjaxHandler is called // outside of flow execution. The code below wraps the FacesContext to override getRenderKit() and provide a // default render kit id. FacesContextHelper helper = new FacesContextHelper(); try { FacesContext facesContext = helper.getFacesContext(getServletContext(), request, response); PartialResponseWriter writer = createPartialResponseWriter(facesContext); writer.startDocument(); writer.redirect(response.encodeRedirectURL(targetUrl)); writer.endDocument(); } finally { helper.releaseIfNecessary(); } }
@Override public void redirect(final String url) throws IOException { FacesContext facesContext = FacesContext.getCurrentInstance(); PartialViewContext partialViewContext = facesContext.getPartialViewContext(); if (partialViewContext.isPartialRequest()) { PartialResponseWriter writer = partialViewContext.getPartialResponseWriter(); this.setResponseContentType("text/xml"); this.setResponseCharacterEncoding("UTF-8"); this.addResponseHeader("Cache-control", "no-cache"); writer.startDocument(); writer.redirect(url); writer.endDocument(); facesContext.responseComplete(); } else if (_servletResponse instanceof HttpServletResponse) { ((HttpServletResponse) _servletResponse).sendRedirect(url); facesContext.responseComplete(); } else { throw new IllegalArgumentException("Only HttpServletResponse supported"); } }
protected void sendAjaxRedirectInternal(final String targetUrl, final HttpServletRequest request, final HttpServletResponse response, boolean popup) throws IOException { // Ideally facesContext.getExternalContext().redirect() should be used instead of the code in this method. // However PartialViewContextImpl.createPartialResponseWriter() calls cxt.getRenderKit(), which in turn // tries to get the UIViewRoot's renderKitId. That results in NPE when JsfAjaxHandler is called // outside of flow execution. The code below wraps the FacesContext to override getRenderKit() and provide a // default render kit id. FacesContextHelper helper = new FacesContextHelper(); try { FacesContext facesContext = helper.getFacesContext(getServletContext(), request, response); PartialResponseWriter writer = createPartialResponseWriter(facesContext); writer.startDocument(); writer.redirect(response.encodeRedirectURL(targetUrl)); writer.endDocument(); } finally { helper.releaseIfNecessary(); } }
@Override public void redirect(final String url) throws IOException { FacesContext facesContext = FacesContext.getCurrentInstance(); PartialViewContext partialViewContext = facesContext.getPartialViewContext(); if (partialViewContext.isPartialRequest()) { PartialResponseWriter writer = partialViewContext.getPartialResponseWriter(); this.setResponseContentType("text/xml"); this.setResponseCharacterEncoding("UTF-8"); this.addResponseHeader("Cache-control", "no-cache"); writer.startDocument(); writer.redirect(url); writer.endDocument(); facesContext.responseComplete(); } else if (_servletResponse instanceof HttpServletResponse) { ((HttpServletResponse) _servletResponse).sendRedirect(url); facesContext.responseComplete(); } else { throw new IllegalArgumentException("Only HttpServletResponse supported"); } }
@Override public void redirect(final String url) throws IOException { FacesContext facesContext = getCurrentFacesContext(); PartialViewContext partialViewContext = facesContext.getPartialViewContext(); if (partialViewContext.isPartialRequest()) { PartialResponseWriter writer = partialViewContext.getPartialResponseWriter(); this.setResponseContentType("text/xml"); this.setResponseCharacterEncoding("UTF-8"); this.addResponseHeader("Cache-control", "no-cache"); writer.startDocument(); writer.redirect(url); writer.endDocument(); facesContext.responseComplete(); } else if (_servletResponse instanceof HttpServletResponse) { ((HttpServletResponse) _servletResponse).sendRedirect(url); facesContext.responseComplete(); } else { throw new IllegalArgumentException("Only HttpServletResponse supported"); } }
pwriter.redirect(requestURI); pwriter.endDocument(); } else {
pwriter.redirect(requestURI); pwriter.endDocument(); } else {
pwriter.redirect(requestURI); pwriter.endDocument(); } else {
protected void redirectJSF2PartialResponse(FacesContext facesContext, ResourceResponse resourceResponse, String url) throws IOException { resourceResponse.setContentType("text/xml"); resourceResponse.setCharacterEncoding("UTF-8"); PartialResponseWriter partialResponseWriter; ResponseWriter responseWriter = facesContext.getResponseWriter(); if (responseWriter instanceof PartialResponseWriter) { partialResponseWriter = (PartialResponseWriter) responseWriter; } else { partialResponseWriter = facesContext.getPartialViewContext().getPartialResponseWriter(); } partialResponseWriter.startDocument(); partialResponseWriter.redirect(url); partialResponseWriter.endDocument(); facesContext.responseComplete(); }
protected void redirectJSF2PartialResponse(FacesContext facesContext, ResourceResponse resourceResponse, String url) throws IOException { resourceResponse.setContentType("text/xml"); resourceResponse.setCharacterEncoding("UTF-8"); PartialResponseWriter partialResponseWriter; ResponseWriter responseWriter = facesContext.getResponseWriter(); if (responseWriter instanceof PartialResponseWriter) { partialResponseWriter = (PartialResponseWriter) responseWriter; } else { partialResponseWriter = facesContext.getPartialViewContext().getPartialResponseWriter(); } partialResponseWriter.startDocument(); partialResponseWriter.redirect(url); partialResponseWriter.endDocument(); facesContext.responseComplete(); }