org.springframework.web.context.request

Class FacesWebRequest

    • Constructor Detail

      • FacesWebRequest

        public FacesWebRequest(FacesContext facesContext)
        Create a new FacesWebRequest adapter for the given FacesContext.
        Parameters:
        facesContext - the current FacesContext
        See Also:
        FacesContext.getCurrentInstance()
    • Method Detail

      • getNativeRequest

        public <T> T getNativeRequest(@Nullable
                                      java.lang.Class<T> requiredType)
        Description copied from interface: NativeWebRequest
        Return the underlying native request object, if available.
        Specified by:
        getNativeRequest in interface NativeWebRequest
        Parameters:
        requiredType - the desired type of request object
        Returns:
        the matching request object, or null if none of that type is available
        See Also:
        HttpServletRequest
      • getNativeResponse

        public <T> T getNativeResponse(@Nullable
                                       java.lang.Class<T> requiredType)
        Description copied from interface: NativeWebRequest
        Return the underlying native response object, if available.
        Specified by:
        getNativeResponse in interface NativeWebRequest
        Parameters:
        requiredType - the desired type of response object
        Returns:
        the matching response object, or null if none of that type is available
        See Also:
        HttpServletResponse
      • getParameterMap

        public java.util.Map<java.lang.String,java.lang.String[]> getParameterMap()
        Description copied from interface: WebRequest
        Return a immutable Map of the request parameters, with parameter names as map keys and parameter values as map values. The map values will be of type String array.

        A single-value parameter will be exposed as an array with a single element.

        Specified by:
        getParameterMap in interface WebRequest
        See Also:
        ServletRequest.getParameterMap()
      • checkNotModified

        public boolean checkNotModified(long lastModifiedTimestamp)
        Description copied from interface: WebRequest
        Check whether the requested resource has been modified given the supplied last-modified timestamp (as determined by the application).

        This will also transparently set the "Last-Modified" response header and HTTP status when applicable.

        Typical usage:

         public String myHandleMethod(WebRequest webRequest, Model model) {
           long lastModified = // application-specific calculation
           if (request.checkNotModified(lastModified)) {
             // shortcut exit - no further processing necessary
             return null;
           }
           // further request processing, actually building content
           model.addAttribute(...);
           return "myViewName";
         }

        This method works with conditional GET/HEAD requests, but also with conditional POST/PUT/DELETE requests.

        Note: you can use either this #checkNotModified(long) method; or WebRequest.checkNotModified(String). If you want enforce both a strong entity tag and a Last-Modified value, as recommended by the HTTP specification, then you should use WebRequest.checkNotModified(String, long).

        If the "If-Modified-Since" header is set but cannot be parsed to a date value, this method will ignore the header and proceed with setting the last-modified timestamp on the response.

        Specified by:
        checkNotModified in interface WebRequest
        Parameters:
        lastModifiedTimestamp - the last-modified timestamp in milliseconds that the application determined for the underlying resource
        Returns:
        whether the request qualifies as not modified, allowing to abort request processing and relying on the response telling the client that the content has not been modified
      • checkNotModified

        public boolean checkNotModified(@Nullable
                                        java.lang.String eTag)
        Description copied from interface: WebRequest
        Check whether the requested resource has been modified given the supplied ETag (entity tag), as determined by the application.

        This will also transparently set the "ETag" response header and HTTP status when applicable.

        Typical usage:

         public String myHandleMethod(WebRequest webRequest, Model model) {
           String eTag = // application-specific calculation
           if (request.checkNotModified(eTag)) {
             // shortcut exit - no further processing necessary
             return null;
           }
           // further request processing, actually building content
           model.addAttribute(...);
           return "myViewName";
         }

        Note: you can use either this #checkNotModified(String) method; or WebRequest.checkNotModified(long). If you want enforce both a strong entity tag and a Last-Modified value, as recommended by the HTTP specification, then you should use WebRequest.checkNotModified(String, long).

        Specified by:
        checkNotModified in interface WebRequest
        Parameters:
        eTag - the entity tag that the application determined for the underlying resource. This parameter will be padded with quotes (") if necessary.
        Returns:
        true if the request does not require further processing.
      • checkNotModified

        public boolean checkNotModified(@Nullable
                                        java.lang.String etag,
                                        long lastModifiedTimestamp)
        Description copied from interface: WebRequest
        Check whether the requested resource has been modified given the supplied ETag (entity tag) and last-modified timestamp, as determined by the application.

        This will also transparently set the "ETag" and "Last-Modified" response headers, and HTTP status when applicable.

        Typical usage:

         public String myHandleMethod(WebRequest webRequest, Model model) {
           String eTag = // application-specific calculation
           long lastModified = // application-specific calculation
           if (request.checkNotModified(eTag, lastModified)) {
             // shortcut exit - no further processing necessary
             return null;
           }
           // further request processing, actually building content
           model.addAttribute(...);
           return "myViewName";
         }

        This method works with conditional GET/HEAD requests, but also with conditional POST/PUT/DELETE requests.

        Note: The HTTP specification recommends setting both ETag and Last-Modified values, but you can also use #checkNotModified(String) or WebRequest.checkNotModified(long).

        Specified by:
        checkNotModified in interface WebRequest
        Parameters:
        etag - the entity tag that the application determined for the underlying resource. This parameter will be padded with quotes (") if necessary.
        lastModifiedTimestamp - the last-modified timestamp in milliseconds that the application determined for the underlying resource
        Returns:
        true if the request does not require further processing.
      • getDescription

        public java.lang.String getDescription(boolean includeClientInfo)
        Description copied from interface: WebRequest
        Get a short description of this request, typically containing request URI and session id.
        Specified by:
        getDescription in interface WebRequest
        Parameters:
        includeClientInfo - whether to include client-specific information such as session id and user name
        Returns:
        the requested description as String
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object