public class

FacesRequestAttributes

extends Object
implements RequestAttributes
java.lang.Object
   ↳ org.springframework.web.context.request.FacesRequestAttributes
Known Direct Subclasses

Class Overview

RequestAttributes adapter for a JSF javax.faces.context.FacesContext. Used as default in a JSF environment, wrapping the current FacesContext.

NOTE: In contrast to ServletRequestAttributes, this variant does not support destruction callbacks for scoped attributes, neither for the request scope nor for the session scope. If you rely on such implicit destruction callbacks, consider defining a Spring RequestContextListener in your web.xml.

See Also
  • javax.faces.context.FacesContext#getExternalContext()
  • javax.faces.context.ExternalContext#getRequestMap()
  • javax.faces.context.ExternalContext#getSessionMap()
  • currentRequestAttributes()

Summary

[Expand]
Inherited Constants
From interface org.springframework.web.context.request.RequestAttributes
Public Constructors
FacesRequestAttributes(FacesContext facesContext)
Create a new FacesRequestAttributes adapter for the given FacesContext.
Public Methods
Object getAttribute(String name, int scope)
Return the value for the scoped attribute of the given name, if any.
String[] getAttributeNames(int scope)
Retrieve the names of all attributes in the scope.
String getSessionId()
Return an id for the current underlying session.
Object getSessionMutex()
Expose the best available mutex for the underlying session: that is, an object to synchronize on for the underlying session.
void registerDestructionCallback(String name, Runnable callback, int scope)
Register a callback to be executed on destruction of the specified attribute in the given scope.
void removeAttribute(String name, int scope)
Remove the scoped attribute of the given name, if it exists.
Object resolveReference(String key)
Resolve the contextual reference for the given key, if any.
void setAttribute(String name, Object value, int scope)
Set the value for the scoped attribute of the given name, replacing an existing value (if any).
Protected Methods
Map<StringObject> getAttributeMap(int scope)
Return the JSF attribute Map for the specified scope
final ExternalContext getExternalContext()
Return the JSF ExternalContext that this adapter operates on.
final FacesContext getFacesContext()
Return the JSF FacesContext that this adapter operates on.
[Expand]
Inherited Methods
From class java.lang.Object
From interface org.springframework.web.context.request.RequestAttributes

Public Constructors

public FacesRequestAttributes (FacesContext facesContext)

Create a new FacesRequestAttributes adapter for the given FacesContext.

Parameters
facesContext the current FacesContext
See Also
  • javax.faces.context.FacesContext#getCurrentInstance()

Public Methods

public Object getAttribute (String name, int scope)

Return the value for the scoped attribute of the given name, if any.

Parameters
name the name of the attribute
scope the scope identifier
Returns
  • the current attribute value, or null if not found

public String[] getAttributeNames (int scope)

Retrieve the names of all attributes in the scope.

Parameters
scope the scope identifier
Returns
  • the attribute names as String array

public String getSessionId ()

Return an id for the current underlying session.

Returns
  • the session id as String (never null

public Object getSessionMutex ()

Expose the best available mutex for the underlying session: that is, an object to synchronize on for the underlying session.

Returns
  • the session mutex to use (never null

public void registerDestructionCallback (String name, Runnable callback, int scope)

Register a callback to be executed on destruction of the specified attribute in the given scope.

Implementations should do their best to execute the callback at the appropriate time: that is, at request completion or session termination, respectively. If such a callback is not supported by the underlying runtime environment, the callback must be ignored and a corresponding warning should be logged.

Note that 'destruction' usually corresponds to destruction of the entire scope, not to the individual attribute having been explicitly removed by the application. If an attribute gets removed via this facade's removeAttribute(String, int) method, any registered destruction callback should be disabled as well, assuming that the removed object will be reused or manually destroyed.

NOTE: Callback objects should generally be serializable if they are being registered for a session scope. Otherwise the callback (or even the entire session) might not survive web app restarts.

Parameters
name the name of the attribute to register the callback for
callback the destruction callback to be executed
scope the scope identifier

public void removeAttribute (String name, int scope)

Remove the scoped attribute of the given name, if it exists.

Note that an implementation should also remove a registered destruction callback for the specified attribute, if any. It does, however, not need to execute a registered destruction callback in this case, since the object will be destroyed by the caller (if appropriate).

Parameters
name the name of the attribute
scope the scope identifier

public Object resolveReference (String key)

Resolve the contextual reference for the given key, if any.

At a minimum: the HttpServletRequest/PortletRequest reference for key "request", and the HttpSession/PortletSession reference for key "session".

Parameters
key the contextual key
Returns
  • the corresponding object, or null if none found

public void setAttribute (String name, Object value, int scope)

Set the value for the scoped attribute of the given name, replacing an existing value (if any).

Parameters
name the name of the attribute
value the value for the attribute
scope the scope identifier

Protected Methods

protected Map<StringObject> getAttributeMap (int scope)

Return the JSF attribute Map for the specified scope

Parameters
scope constant indicating request or session scope
Returns
  • the Map representation of the attributes in the specified scope

protected final ExternalContext getExternalContext ()

Return the JSF ExternalContext that this adapter operates on.

See Also
  • javax.faces.context.FacesContext#getExternalContext()

protected final FacesContext getFacesContext ()

Return the JSF FacesContext that this adapter operates on.