Top Description Fields Constructors Methods
org.springframework.web.context.request

public Class FacesRequestAttributes

extends Object
implements RequestAttributes
Class Inheritance
All Implemented Interfaces
org.springframework.web.context.request.RequestAttributes
Known Direct Subclasses
org.springframework.web.context.request.FacesWebRequest
Imports
java.lang.reflect.Method, java.util.Map, jakarta.faces.context.ExternalContext, .FacesContext, org.apache.commons.logging.Log, .LogFactory, org.springframework.util.Assert, .ReflectionUtils, .StringUtils, org.springframework.web.util.WebUtils

RequestAttributes adapter for a JSF jakarta.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.

Requires JSF 2.0 or higher, as of Spring 4.0.

Author
Juergen Hoeller
Since
2.5.2
See Also
jakarta.faces.context.FacesContext#getExternalContext(), jakarta.faces.context.ExternalContext#getRequestMap(), jakarta.faces.context.ExternalContext#getSessionMap(), RequestContextHolder#currentRequestAttributes()

Field Summary

Modifier and TypeField and Description
private final FacesContext
private static final Log
logger

We'll create a lot of these objects, so we don't want a new logger every time.

Constructor Summary

AccessConstructor and Description
public
FacesRequestAttributes(FacesContext
the current FacesContext
facesContext
)

Create a new FacesRequestAttributes adapter for the given FacesContext.

Method Summary

Modifier and TypeMethod and Description
public Object
getAttribute(String
the name of the attribute
name
,
int
the scope identifier
scope
)

Implements org.springframework.web.context.request.RequestAttributes.getAttribute.

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

protected Map<String, Object>

Returns:

the Map representation of the attributes in the specified scope
getAttributeMap
(int
constant indicating request or session scope
scope
)

Return the JSF attribute Map for the specified scope.

public String[]
getAttributeNames(int
the scope identifier
scope
)

Implements org.springframework.web.context.request.RequestAttributes.getAttributeNames.

Retrieve the names of all attributes in the scope.

protected final ExternalContext
getExternalContext()

Return the JSF ExternalContext that this adapter operates on.

protected final FacesContext
getFacesContext()

Return the JSF FacesContext that this adapter operates on.

public String
getSessionId()

Implements org.springframework.web.context.request.RequestAttributes.getSessionId.

Return an id for the current underlying session.

public Object
getSessionMutex()

Implements org.springframework.web.context.request.RequestAttributes.getSessionMutex.

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

public void
registerDestructionCallback(String
the name of the attribute to register the callback for
name
,
Runnable
the destruction callback to be executed
callback
,
int
the scope identifier
scope
)

Implements org.springframework.web.context.request.RequestAttributes.registerDestructionCallback.

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

public void
removeAttribute(String
the name of the attribute
name
,
int
the scope identifier
scope
)

Implements org.springframework.web.context.request.RequestAttributes.removeAttribute.

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

public Object
resolveReference(String
the contextual key
key
)

Implements org.springframework.web.context.request.RequestAttributes.resolveReference.

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

public void
setAttribute(String
the name of the attribute
name
,
Object
the value for the attribute
value
,
int
the scope identifier
scope
)

Implements org.springframework.web.context.request.RequestAttributes.setAttribute.

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

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

facesContextback to summary
private final FacesContext facesContext
loggerback to summary
private static final Log logger

We'll create a lot of these objects, so we don't want a new logger every time.

Constructor Detail

FacesRequestAttributesback to summary
public FacesRequestAttributes(FacesContext facesContext)

Create a new FacesRequestAttributes adapter for the given FacesContext.

Parameters
facesContext:FacesContext

the current FacesContext

See Also
jakarta.faces.context.FacesContext#getCurrentInstance()

Method Detail

getAttributeback to summary
public Object getAttribute(String name, int scope)

Implements org.springframework.web.context.request.RequestAttributes.getAttribute.

Doc from org.springframework.web.context.request.RequestAttributes.getAttribute.

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

Parameters
name:String

the name of the attribute

scope:int

the scope identifier

Returns:Object

the current attribute value, or null if not found

Annotations
@Override
getAttributeMapback to summary
protected Map<String, Object> getAttributeMap(int scope)

Return the JSF attribute Map for the specified scope.

Parameters
scope:int

constant indicating request or session scope

Returns:Map<String, Object>

the Map representation of the attributes in the specified scope

See Also
SCOPE_REQUEST, SCOPE_SESSION
getAttributeNamesback to summary
public String[] getAttributeNames(int scope)

Implements org.springframework.web.context.request.RequestAttributes.getAttributeNames.

Doc from org.springframework.web.context.request.RequestAttributes.getAttributeNames.

Retrieve the names of all attributes in the scope.

Parameters
scope:int

the scope identifier

Returns:String[]

the attribute names as String array

Annotations
@Override
getExternalContextback to summary
protected final ExternalContext getExternalContext()

Return the JSF ExternalContext that this adapter operates on.

See Also
jakarta.faces.context.FacesContext#getExternalContext()
getFacesContextback to summary
protected final FacesContext getFacesContext()

Return the JSF FacesContext that this adapter operates on.

getSessionIdback to summary
public String getSessionId()

Implements org.springframework.web.context.request.RequestAttributes.getSessionId.

Doc from org.springframework.web.context.request.RequestAttributes.getSessionId.

Return an id for the current underlying session.

Returns:String

the session id as String (never null)

Annotations
@Override
getSessionMutexback to summary
public Object getSessionMutex()

Implements org.springframework.web.context.request.RequestAttributes.getSessionMutex.

Doc from org.springframework.web.context.request.RequestAttributes.getSessionMutex.

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

Returns:Object

the session mutex to use (never null)

Annotations
@Override
registerDestructionCallbackback to summary
public void registerDestructionCallback(String name, Runnable callback, int scope)

Implements org.springframework.web.context.request.RequestAttributes.registerDestructionCallback.

Doc from org.springframework.web.context.request.RequestAttributes.registerDestructionCallback.

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

the name of the attribute to register the callback for

callback:Runnable

the destruction callback to be executed

scope:int

the scope identifier

Annotations
@Override
removeAttributeback to summary
public void removeAttribute(String name, int scope)

Implements org.springframework.web.context.request.RequestAttributes.removeAttribute.

Doc from org.springframework.web.context.request.RequestAttributes.removeAttribute.

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

the name of the attribute

scope:int

the scope identifier

Annotations
@Override
resolveReferenceback to summary
public Object resolveReference(String key)

Implements org.springframework.web.context.request.RequestAttributes.resolveReference.

Doc from org.springframework.web.context.request.RequestAttributes.resolveReference.

Resolve 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".

Parameters
key:String

the contextual key

Returns:Object

the corresponding object, or null if none found

Annotations
@Override
setAttributeback to summary
public void setAttribute(String name, Object value, int scope)

Implements org.springframework.web.context.request.RequestAttributes.setAttribute.

Doc from org.springframework.web.context.request.RequestAttributes.setAttribute.

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

Parameters
name:String

the name of the attribute

value:Object

the value for the attribute

scope:int

the scope identifier

Annotations
@Override