org.springframework.web.context.request

## Class FacesWebRequest

- java.lang.Object
- - org.springframework.web.context.request.FacesRequestAttributes
  - - org.springframework.web.context.request.FacesWebRequest

All Implemented Interfaces:
  NativeWebRequest, RequestAttributes, WebRequest

    public class FacesWebRequest
    extends FacesRequestAttributes
    implements NativeWebRequest

`WebRequest` adapter for a JSF `FacesContext`.

Since:
  2.5.2
Author:
  Juergen Hoeller

### Field Summary

### Fields inherited from interface org.springframework.web.context.request.RequestAttributes

`REFERENCE_REQUEST, REFERENCE_SESSION, SCOPE_GLOBAL_SESSION, SCOPE_REQUEST, SCOPE_SESSION`

### Constructor Summary

Constructors
Constructor and Description
`FacesWebRequest(FacesContext facesContext)` Create a new FacesWebRequest adapter for the given FacesContext.

### Method Summary

Methods
`boolean` `checkNotModified(long lastModifiedTimestamp)` Check whether the request qualifies as not modified given the supplied last-modified timestamp (as determined by the application).
`boolean` `checkNotModified(String eTag)` Check whether the request qualifies as not modified given the supplied `ETag` (entity tag), as determined by the application.
`String` `getContextPath()` Return the context path for this request (usually the base path that the current web application is mapped to).
`String` `getDescription(boolean includeClientInfo)` Get a short description of this request, typically containing request URI and session id.
`String` `getHeader(String headerName)` Return the request header of the given name, or `null` if none.
`Iterator<String>` `getHeaderNames()` Return a Iterator over request header names.
`String[]` `getHeaderValues(String headerName)` Return the request header values for the given header name, or `null` if none.
`Locale` `getLocale()` Return the primary Locale for this request.
`Object` `getNativeRequest()` Return the underlying native request object, if available.
`<T> T` `getNativeRequest(Class<T> requiredType)` Return the underlying native request object, if available.
`Object` `getNativeResponse()` Return the underlying native response object, if available.
`<T> T` `getNativeResponse(Class<T> requiredType)` Return the underlying native request object, if available.
`String` `getParameter(String paramName)` Return the request parameter of the given name, or `null` if none.
`Map<String,String[]>` `getParameterMap()` Return a immutable Map of the request parameters, with parameter names as map keys and parameter values as map values.
`Iterator<String>` `getParameterNames()` Return a Iterator over request parameter names.
`String[]` `getParameterValues(String paramName)` Return the request parameter values for the given parameter name, or `null` if none.
`String` `getRemoteUser()` Return the remote user for this request, if any.
`Principal` `getUserPrincipal()` Return the user principal for this request, if any.
`boolean` `isSecure()` Return whether this request has been sent over a secure transport mechanism (such as SSL).
`boolean` `isUserInRole(String role)` Determine whether the user is in the given role for this request.
`String` `toString()`

### Methods inherited from class org.springframework.web.context.request.FacesRequestAttributes

`getAttribute, getAttributeMap, getAttributeNames, getExternalContext, getFacesContext, getSessionId, getSessionMutex, registerDestructionCallback, removeAttribute, resolveReference, setAttribute`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

### Methods inherited from interface org.springframework.web.context.request.RequestAttributes

`getAttribute, getAttributeNames, getSessionId, getSessionMutex, registerDestructionCallback, removeAttribute, resolveReference, setAttribute`

### 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 Object getNativeRequest()

Description copied from interface: `NativeWebRequest`
Return the underlying native request object, if available.

Specified by:
  `getNativeRequest` in interface `NativeWebRequest`
See Also:
  `HttpServletRequest`, `ActionRequest`, `RenderRequest`

#### getNativeResponse

    public Object getNativeResponse()

Description copied from interface: `NativeWebRequest`
Return the underlying native response object, if available.

Specified by:
  `getNativeResponse` in interface `NativeWebRequest`
See Also:
  `HttpServletResponse`, `ActionResponse`, `RenderResponse`

#### getNativeRequest

    public <T> T getNativeRequest(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`, `ActionRequest`, `RenderRequest`

#### getNativeResponse

    public <T> T getNativeResponse(Class<T> requiredType)

Description copied from interface: `NativeWebRequest`
Return the underlying native request 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:
  `HttpServletRequest`, `ActionRequest`, `RenderRequest`

#### getHeader

    public String getHeader(String headerName)

Description copied from interface: `WebRequest`
Return the request header of the given name, or `null` if none.

Retrieves the first header value in case of a multi-value header.

Specified by:
  `getHeader` in interface `WebRequest`
See Also:
  `HttpServletRequest.getHeader(String)`

#### getHeaderValues

    public String[] getHeaderValues(String headerName)

Description copied from interface: `WebRequest`
Return the request header values for the given header name, or `null` if none.

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

Specified by:
  `getHeaderValues` in interface `WebRequest`
See Also:
  `HttpServletRequest.getHeaders(String)`

#### getHeaderNames

    public Iterator<String> getHeaderNames()

Description copied from interface: `WebRequest`
Return a Iterator over request header names.

Specified by:
  `getHeaderNames` in interface `WebRequest`
See Also:
  `HttpServletRequest.getHeaderNames()`

#### getParameter

    public String getParameter(String paramName)

Description copied from interface: `WebRequest`
Return the request parameter of the given name, or `null` if none.

Retrieves the first parameter value in case of a multi-value parameter.

Specified by:
  `getParameter` in interface `WebRequest`
See Also:
  `ServletRequest.getParameter(String)`

#### getParameterNames

    public Iterator<String> getParameterNames()

Description copied from interface: `WebRequest`
Return a Iterator over request parameter names.

Specified by:
  `getParameterNames` in interface `WebRequest`
See Also:
  `ServletRequest.getParameterNames()`

#### getParameterValues

    public String[] getParameterValues(String paramName)

Description copied from interface: `WebRequest`
Return the request parameter values for the given parameter name, or `null` if none.

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

Specified by:
  `getParameterValues` in interface `WebRequest`
See Also:
  `ServletRequest.getParameterValues(String)`

#### getParameterMap

    public Map<String,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()`

#### getLocale

    public Locale getLocale()

Description copied from interface: `WebRequest`
Return the primary Locale for this request.

Specified by:
  `getLocale` in interface `WebRequest`
See Also:
  `ServletRequest.getLocale()`

#### getContextPath

    public String getContextPath()

Description copied from interface: `WebRequest`
Return the context path for this request (usually the base path that the current web application is mapped to).

Specified by:
  `getContextPath` in interface `WebRequest`
See Also:
  `HttpServletRequest.getContextPath()`

#### getRemoteUser

    public String getRemoteUser()

Description copied from interface: `WebRequest`
Return the remote user for this request, if any.

Specified by:
  `getRemoteUser` in interface `WebRequest`
See Also:
  `HttpServletRequest.getRemoteUser()`

#### getUserPrincipal

    public Principal getUserPrincipal()

Description copied from interface: `WebRequest`
Return the user principal for this request, if any.

Specified by:
  `getUserPrincipal` in interface `WebRequest`
See Also:
  `HttpServletRequest.getUserPrincipal()`

#### isUserInRole

    public boolean isUserInRole(String role)

Description copied from interface: `WebRequest`
Determine whether the user is in the given role for this request.

Specified by:
  `isUserInRole` in interface `WebRequest`
See Also:
  `HttpServletRequest.isUserInRole(String)`

#### isSecure

    public boolean isSecure()

Description copied from interface: `WebRequest`
Return whether this request has been sent over a secure transport mechanism (such as SSL).

Specified by:
  `isSecure` in interface `WebRequest`
See Also:
  `ServletRequest.isSecure()`

#### checkNotModified

    public boolean checkNotModified(long lastModifiedTimestamp)

Description copied from interface: `WebRequest`
Check whether the request qualifies as not modified given the supplied last-modified timestamp (as determined by the application).

This will also transparently set the appropriate response headers, for both the modified case and the not-modified case.

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";
     }

Note: that you typically want to use either this `WebRequest.checkNotModified(long)` method; or `WebRequest.checkNotModified(String)`, but not both.

Specified by:
  `checkNotModified` in interface `WebRequest`
Parameters:
  `lastModifiedTimestamp` - the last-modified timestamp 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(String eTag)

Description copied from interface: `WebRequest`
Check whether the request qualifies as not modified given the supplied `ETag` (entity tag), as determined by the application.

This will also transparently set the appropriate response headers, for both the modified case and the not-modified case.

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: that you typically want to use either this `WebRequest.checkNotModified(String)` method; or `WebRequest.checkNotModified(long)`, but not both.

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:
  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

#### getDescription

    public 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 String toString()

Overrides:
  `toString` in class `Object`