code: public void processDynaView(final PrettyContext prettyContext, final FacesContext facesContext)
     {
        log.trace("Requesting DynaView processing for: " + prettyContext.getRequestURL());
        String viewId = "";
        try
        {
           viewId = prettyContext.getCurrentViewId();
           log.trace("Invoking DynaView method: " + viewId);
           Object result = computeDynaViewId(facesContext);
           if (result instanceof String)
           {
              viewId = (String) result;
              log.trace("Forwarding to DynaView: " + viewId);
              prettyContext.setDynaviewProcessed(true);
              facesContext.getExternalContext().dispatch(viewId);
              facesContext.responseComplete();
           }
        }
        catch (Exception e)
        {
           log.error("Failed to process dynaview", e);
           PrettyRedirector prettyRedirector = new PrettyRedirector();
           prettyRedirector.send404(facesContext);
           throw new PrettyException("Could not forward to view: " + viewId + "", e);
        }
     }
docs: Handle DynaView processing. This method will end the Faces life-cycle.