Hi,
For issue 1260 I've added basic awareness for the so-called "exact
mapping", meaning when the FacesServlet has as url pattern for a servlet
mapping like "/foo".
The most important JavaDoc for it is in this commit (in our private repo
which is already pushed to the java.net repo as well):
https://github.com/jsf-spec/mojarra/commit/fd56d980b9df4d8d8f579c510620466fc2062426
See Resource#getRequestPath
* <div class="changed_added_2_3">
* <p>If exact mapped, <em>result</em> must be the following if and only
* if the FacesServlet is mapped to the exact URL pattern {_at_link
* ResourceHandler#RESOURCE_IDENTIFIER} + {_at_link #getResourceName}
* </p>
*
* <blockquote>
* <p><code>result = <em>contextRoot</em> + {_at_link
* ResourceHandler#RESOURCE_IDENTIFIER} + {_at_link
#getResourceName}</code></p>
* </blockquote>
*
* <p>If exact mapped, and the FacesServlet is <em>not</em> mapped to
the exact
* URL pattern {_at_link ResourceHandler#RESOURCE_IDENTIFIER} + {_at_link
#getResourceName}
* do the following:
* </p>
*
* <p>
* Retrieve the existing mappings of the FacesServlet, e.g. using
* {_at_link ServletRegistration#getMappings()}, and from those pick any
* prefix mapping or extension mapping. If no such mapping is found,
* throw an {_at_link IllegalStateException}. If such mapping is found
remove
* the <code>*</code> character from that mapping, take that as the new
* <em>facesServletMapping</em> and continue with evaluating this
mapping
* as specified below for <em>if prefix mapped</em> and for
* <em>if extension mapped</em>
* </div>
The JavaDoc for the ViewHandler doesn't spell out the requirements in the
JavaDoc, but points to JSF.7.6.2, so I'll send the text for that
momentarily.
Kind regards,
Arjan Tijms