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

Namespaced ViewState and other parameters cannot be obtained via portletRequest.getParameter()

Details

    Description

      Due to the changes made for JAVASERVERFACES-SPEC-PUBLIC-790, the java.faces.ViewState and javax.faces.ClientWindow parameters now include a JSF separator character (usually a colon ":") when submitted to the server. This may cause backwards compatibility issues when developers attempt to do something like what we do in the showcase ActionURLDemoPortlet:

      String viewState = actionRequest.getParameter(ResponseStateManager.VIEW_STATE_PARAM);
      
      if (viewState == null) {
      
          /* ... */
      

      If namespaced parameters are turned on (which will be the default in JSF 2.3 + Portlet 3.0), this code will never be able to retrieve the view state. This is because the code used to retrieve parameters first checks if it can obtain the value via the passed String (paramName). If not, it attempts to prepend the namespace to the string and retrieve the value (namespace + paramName). This will not work for the view state and client window params in JSF 2.3 (namespace + seperatorChar + paramName). We need to consider whether we'll fix this in the Bridge by implementing a portlet filter which obtains the value correctly, or consider leaving it as is (a minor breaking change).

      Attachments

        Issue Links

          Activity

            People

              neil.griffin Neil Griffin
              kyle.stiemann Kyle Stiemann (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Packages

                  Version Package
                  bridge-impl-6.0.0