Uploaded image for project: 'PUBLIC - Liferay Faces'
  1. PUBLIC - Liferay Faces
  2. FACES-2619

The bridge implementation of ExternalContext.getRequestServletPath() does not respect explicit extension-mapped servlet-mapping entries in WEB-INF/web.xml

Details

    Description

      This issue is closely related to FACES-1224 which was a failure with TCK TestPage159: getRequestServletPathTest.

      The TCK defines the following explicit extension-mapped servlet-mapping entries in WEB-INF/web.xml:

      <servlet-mapping>
      	<servlet-name>faces</servlet-name>
      	<url-pattern>*.jsf</url-pattern>
      </servlet-mapping>
      

      According to the JSR 329 Spec, the ExternalContext.getRequestServletPath() method must return a value by "determining the servlet mapping of the Faces servlet and constructing the appropriate paths such that they conform to the paths the servlet container generates when processing an http request which targets this view as defined in SRV .3.4 in the Servlet 2.5 specification titled 'Request Path Elements'."
      Given the following viewId specified in WEB-INF/portlet.xml for the getRequestServletPathTest:

      <init-param>
      	<name>javax.portlet.faces.defaultViewId.view</name>
      	<value>/tests/singleRequestTest.jsp?field1=value1&amp;field2=value2</value>
      </init-param>
      

      ... the return value should be "/tests/singleRequestTest.jsf?field1=value1&field2=value2" but since the bridge ignores the servlet-mapping it returns "/tests/singleRequestTest.jsp?field1=value1&field2=value2"

      Attachments

        Issue Links

          Activity

            People

              neil.griffin Neil Griffin
              neil.griffin Neil Griffin
              Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Packages

                  Version Package
                  bridge-impl-2.0.0
                  bridge-impl-3.0.0
                  bridge-impl-4.0.0
                  bridge-impl-5.0.0