Class FacesRequestAttributes
- All Implemented Interfaces:
RequestAttributes
- Direct Known Subclasses:
FacesWebRequest
RequestAttributes adapter for a JSF 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.
Requires JSF 2.0 or higher, as of Spring 4.0.
- Since:
- 2.5.2
- Author:
- Juergen Hoeller
- See Also:
-
Field Summary
Fields inherited from interface RequestAttributes
REFERENCE_REQUEST, REFERENCE_SESSION, SCOPE_REQUEST, SCOPE_SESSION -
Constructor Summary
ConstructorsConstructorDescriptionFacesRequestAttributes(jakarta.faces.context.FacesContext facesContext) Create a new FacesRequestAttributes adapter for the given FacesContext. -
Method Summary
Modifier and TypeMethodDescriptiongetAttribute(String name, int scope) Return the value for the scoped attribute of the given name, if any.getAttributeMap(int scope) Return the JSF attribute Map for the specified scope.String[]getAttributeNames(int scope) Retrieve the names of all attributes in the scope.protected final jakarta.faces.context.ExternalContextReturn the JSF ExternalContext that this adapter operates on.protected final jakarta.faces.context.FacesContextReturn the JSF FacesContext that this adapter operates on.Return an id for the current underlying session.Expose the best available mutex for the underlying session: that is, an object to synchronize on for the underlying session.voidregisterDestructionCallback(String name, Runnable callback, int scope) Register a callback to be executed on destruction of the specified attribute in the given scope.voidremoveAttribute(String name, int scope) Remove the scoped attribute of the given name, if it exists.resolveReference(String key) Resolve the contextual reference for the given key, if any.voidsetAttribute(String name, Object value, int scope) Set the value for the scoped attribute of the given name, replacing an existing value (if any).
-
Constructor Details
-
FacesRequestAttributes
public FacesRequestAttributes(jakarta.faces.context.FacesContext facesContext) Create a new FacesRequestAttributes adapter for the given FacesContext.- Parameters:
facesContext- the current FacesContext- See Also:
-
-
Method Details
-
getFacesContext
protected final jakarta.faces.context.FacesContext getFacesContext()Return the JSF FacesContext that this adapter operates on. -
getExternalContext
protected final jakarta.faces.context.ExternalContext getExternalContext()Return the JSF ExternalContext that this adapter operates on.- See Also:
-
getAttributeMap
-
getAttribute
Description copied from interface:RequestAttributesReturn the value for the scoped attribute of the given name, if any.- Specified by:
getAttributein interfaceRequestAttributes- Parameters:
name- the name of the attributescope- the scope identifier- Returns:
- the current attribute value, or
nullif not found
-
setAttribute
Description copied from interface:RequestAttributesSet the value for the scoped attribute of the given name, replacing an existing value (if any).- Specified by:
setAttributein interfaceRequestAttributes- Parameters:
name- the name of the attributevalue- the value for the attributescope- the scope identifier
-
removeAttribute
Description copied from interface:RequestAttributesRemove 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).
- Specified by:
removeAttributein interfaceRequestAttributes- Parameters:
name- the name of the attributescope- the scope identifier
-
getAttributeNames
Description copied from interface:RequestAttributesRetrieve the names of all attributes in the scope.- Specified by:
getAttributeNamesin interfaceRequestAttributes- Parameters:
scope- the scope identifier- Returns:
- the attribute names as String array
-
registerDestructionCallback
Description copied from interface:RequestAttributesRegister 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
RequestAttributes.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.
- Specified by:
registerDestructionCallbackin interfaceRequestAttributes- Parameters:
name- the name of the attribute to register the callback forcallback- the destruction callback to be executedscope- the scope identifier
-
resolveReference
Description copied from interface:RequestAttributesResolve the contextual reference for the given key, if any.At a minimum: the HttpServletRequest reference for key "request", and the HttpSession reference for key "session".
- Specified by:
resolveReferencein interfaceRequestAttributes- Parameters:
key- the contextual key- Returns:
- the corresponding object, or
nullif none found
-
getSessionId
Description copied from interface:RequestAttributesReturn an id for the current underlying session.- Specified by:
getSessionIdin interfaceRequestAttributes- Returns:
- the session id as String (never
null)
-
getSessionMutex
Description copied from interface:RequestAttributesExpose the best available mutex for the underlying session: that is, an object to synchronize on for the underlying session.- Specified by:
getSessionMutexin interfaceRequestAttributes- Returns:
- the session mutex to use (never
null)
-