code: public static String normalizeRequestURI(final String servletPath, final String requestPathInfo, final String viewId)
     {
        
        // We must not process empty viewIds
        if (viewId == null)
        {
           return null;
        }
  
        /*
         * code from com.sun.faces.util.Util#getMappingForRequest(String servletPath, String pathInfo)
         * and  com.sun.faces.application.view.MultiViewHandler#normalizeRequestURI(String uri, String mapping)
         */
        if (servletPath != null)
        {
           if ((requestPathInfo != null || servletPath.indexOf('.') < 0) && viewId.startsWith(servletPath + '/'))
           {
              return viewId.substring(servletPath.length());
           }
        }
  
        return viewId;
     }
docs: Prune the url-pattern from the <code>viewId</code> if prefix mapped
  FacesServlet, otherwise return the original URI.
  
  @param servletPath
  the servlet path
  @param requestPathInfo
  the path info
  @param viewId
  the view id
  @return the URI without additional FacesServlet mappings
  @see javax.servlet.http.HttpServletRequest#getServletPath()
  @see javax.servlet.http.HttpServletRequest#getPathInfo()