Class PartialViewContext
- java.lang.Object
-
- jakarta.faces.context.PartialViewContext
-
- Direct Known Subclasses:
PartialViewContextWrapper
public abstract class PartialViewContext extends Object
PartialViewContext contains methods and properties that pertain to partial request processing and partial response rendering on a view.
The
PartialViewContext
instance is used to determine if the current request indicates the requirement to performpartial processing
and/orpartial rendering
. Partial processing is the processing of selected components through theexecute
portion of the request processing lifecycle. Partial rendering is the rendering of specified components in theRender Response Phase
of the request processing lifecycle.
-
-
Field Summary
Fields Modifier and Type Field Description static String
ALL_PARTIAL_PHASE_CLIENT_IDS
The value that when used withPARTIAL_EXECUTE_PARAM_NAME
orPARTIAL_RENDER_PARAM_NAME
indicates these phases must be skipped.static String
PARTIAL_EVENT_PARAM_NAME
The request parameter name whose request parameter value identifies the type of partial event.static String
PARTIAL_EXECUTE_PARAM_NAME
The request parameter name whose request parameter value is aCollection
of client identifiers identifying the components that must be processed during the Apply Request Values, Process Validations, and Update Model Values phases of the request processing lifecycle.static String
PARTIAL_RENDER_PARAM_NAME
The request parameter name whose request parameter value is aCollection
of client identifiers identifying the components that must be processed during the Render Response phase of the request processing lifecycle.static String
RESET_VALUES_PARAM_NAME
If the request parameter named by the value of this constant has a parameter value oftrue
, the implementation must returntrue
fromisResetValues()
.
-
Constructor Summary
Constructors Constructor Description PartialViewContext()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description abstract List<String>
getEvalScripts()
Returns a mutableList
of scripts to be evaluated in client side on complete of ajax request.abstract Collection<String>
getExecuteIds()
Return aCollection
of client identifiers from the current request with the request parameter namePARTIAL_EXECUTE_PARAM_NAME
.abstract PartialResponseWriter
getPartialResponseWriter()
Return theResponseWriter
to which components should direct their output for partial view rendering.abstract Collection<String>
getRenderIds()
Return aCollection
of client identifiers from the current request with the request parameter namePARTIAL_RENDER_PARAM_NAME
.abstract boolean
isAjaxRequest()
Returntrue
if the request headerFaces-Request
is present with the valuepartial/ajax
.abstract boolean
isExecuteAll()
Returntrue
ifisAjaxRequest()
returnstrue
andPARTIAL_EXECUTE_PARAM_NAME
is present in the current request with the valueALL_PARTIAL_PHASE_CLIENT_IDS
.abstract boolean
isPartialRequest()
Returntrue
isAjaxRequest()
returnstrue
or if the request headerFaces-Request
is present with the valuepartial/process
.abstract boolean
isRenderAll()
Returntrue
ifisAjaxRequest()
returnstrue
andPARTIAL_RENDER_PARAM_NAME
is present in the current request with the valueALL_PARTIAL_PHASE_CLIENT_IDS
.boolean
isResetValues()
Returntrue
if the incoming request has a parameter named by the value ofRESET_VALUES_PARAM_NAME
and that value istrue
.abstract void
processPartial(PhaseId phaseId)
Perform lifecycle processing on components during the indicatedphaseId
.abstract void
release()
Release any resources associated with thisPartialViewContext
instance.abstract void
setPartialRequest(boolean isPartialRequest)
Dynamically indicate that this is a partial request.abstract void
setRenderAll(boolean renderAll)
Indicate the entire view must be rendered ifrenderAll
istrue
.
-
-
-
Field Detail
-
PARTIAL_EVENT_PARAM_NAME
public static final String PARTIAL_EVENT_PARAM_NAME
The request parameter name whose request parameter value identifies the type of partial event.
- Since:
- 2.3
- See Also:
- Constant Field Values
-
PARTIAL_RENDER_PARAM_NAME
public static final String PARTIAL_RENDER_PARAM_NAME
The request parameter name whose request parameter value is a
Collection
of client identifiers identifying the components that must be processed during the Render Response phase of the request processing lifecycle.- Since:
- 2.0
- See Also:
- Constant Field Values
-
PARTIAL_EXECUTE_PARAM_NAME
public static final String PARTIAL_EXECUTE_PARAM_NAME
The request parameter name whose request parameter value is a
Collection
of client identifiers identifying the components that must be processed during the Apply Request Values, Process Validations, and Update Model Values phases of the request processing lifecycle.- Since:
- 2.0
- See Also:
- Constant Field Values
-
RESET_VALUES_PARAM_NAME
public static final String RESET_VALUES_PARAM_NAME
If the request parameter named by the value of this constant has a parameter value of
true
, the implementation must returntrue
fromisResetValues()
.- Since:
- 2.2
- See Also:
- Constant Field Values
-
ALL_PARTIAL_PHASE_CLIENT_IDS
public static final String ALL_PARTIAL_PHASE_CLIENT_IDS
The value that when used with
PARTIAL_EXECUTE_PARAM_NAME
orPARTIAL_RENDER_PARAM_NAME
indicates these phases must be skipped.- Since:
- 2.0
- See Also:
- Constant Field Values
-
-
Method Detail
-
getExecuteIds
public abstract Collection<String> getExecuteIds()
Return a
Collection
of client identifiers from the current request with the request parameter namePARTIAL_EXECUTE_PARAM_NAME
. If there is no such request parameter, return an emptyCollection
. These client identifiers are used to identify components that will be processed during theexecute
phase of the request processing lifecycle. The returnedCollection
is mutable.- Returns:
- the ids for the execute portion of the lifecycle
- Throws:
IllegalStateException
- if this method is called after this instance has been released- Since:
- 2.0
-
getRenderIds
public abstract Collection<String> getRenderIds()
Return a
Collection
of client identifiers from the current request with the request parameter namePARTIAL_RENDER_PARAM_NAME
. If there is no such request parameter, return an emptyCollection
. These client identifiers are used to identify components that will be processed during therender
phase of the request processing lifecycle. The returnedCollection
is mutable.- Returns:
- the ids for the render portion of the lifecycle
- Throws:
IllegalStateException
- if this method is called after this instance has been released- Since:
- 2.0
-
getEvalScripts
public abstract List<String> getEvalScripts()
Returns a mutable
List
of scripts to be evaluated in client side on complete of ajax request.- Returns:
- A mutable
List
of scripts to be evaluated in client side on complete of ajax request. - Throws:
IllegalStateException
- If this method is called after this instance has been released.- Since:
- 2.3
-
getPartialResponseWriter
public abstract PartialResponseWriter getPartialResponseWriter()
Return the
ResponseWriter
to which components should direct their output for partial view rendering. Within a given response, components can use either the ResponseStream or the ResponseWriter, but not both.- Returns:
- the
ResponseWriter
for output - Throws:
IllegalStateException
- if this method is called after this instance has been released- Since:
- 2.0
-
isAjaxRequest
public abstract boolean isAjaxRequest()
Return
true
if the request headerFaces-Request
is present with the valuepartial/ajax
. Otherwise, returnfalse
.- Returns:
- whether or not this is an ajax request
- Throws:
IllegalStateException
- if this method is called after this instance has been released- Since:
- 2.0
-
isPartialRequest
public abstract boolean isPartialRequest()
Return
true
isAjaxRequest()
returnstrue
or if the request headerFaces-Request
is present with the valuepartial/process
. Otherwise, returnfalse
.- Returns:
- whether or not this request is partial
- Throws:
IllegalStateException
- if this method is called after this instance has been released- Since:
- 2.0
-
isExecuteAll
public abstract boolean isExecuteAll()
Return
true
ifisAjaxRequest()
returnstrue
andPARTIAL_EXECUTE_PARAM_NAME
is present in the current request with the valueALL_PARTIAL_PHASE_CLIENT_IDS
. Otherwise, returnfalse
.- Returns:
- whether or not this is an execute all request
- Throws:
IllegalStateException
- if this method is called after this instance has been released- Since:
- 2.0
-
isRenderAll
public abstract boolean isRenderAll()
Return
true
ifisAjaxRequest()
returnstrue
andPARTIAL_RENDER_PARAM_NAME
is present in the current request with the valueALL_PARTIAL_PHASE_CLIENT_IDS
. Otherwise, returnfalse
.- Returns:
- whether or not this is a render all request
- Throws:
IllegalStateException
- if this method is called after this instance has been released- Since:
- 2.0
-
isResetValues
public boolean isResetValues()
Return
true
if the incoming request has a parameter named by the value ofRESET_VALUES_PARAM_NAME
and that value istrue
. To preserve backward compatibility with custom implementations that may have extended from an earlier version of this class, an implementation is provided that returnsfalse
. A compliant implementation must override this method to take the specified action.- Returns:
- whether or not this is a reset values request
- Since:
- 2.2
-
setRenderAll
public abstract void setRenderAll(boolean renderAll)
Indicate the entire view must be rendered if
renderAll
istrue
.- Parameters:
renderAll
- the valuetrue
indicates the entire view must be rendered.- Throws:
IllegalStateException
- if this method is called after this instance has been released- Since:
- 2.0
-
setPartialRequest
public abstract void setPartialRequest(boolean isPartialRequest)
Dynamically indicate that this is a partial request.
- Parameters:
isPartialRequest
- the valuetrue
indicates this is a partial request.- Throws:
IllegalStateException
- if this method is called after this instance has been released- Since:
- 2.0
-
release
public abstract void release()
Release any resources associated with this
PartialViewContext
instance.- Throws:
IllegalStateException
- if this method is called after this instance has been released
-
processPartial
public abstract void processPartial(PhaseId phaseId)
Perform lifecycle processing on components during the indicated
phaseId
. Only those components with identifiers existing in theCollection
returned fromgetExecuteIds()
andgetRenderIds()
will be processed.When the indicated
phaseId
equalsPhaseId.RENDER_RESPONSE
, then perform the following tasks in sequence:- If
isResetValues()
returnstrue
, then callUIViewRoot.resetValues(FacesContext, Collection)
, passinggetRenderIds()
. - If
isRenderAll()
returnsfalse
, then render any component resource ofUIViewRoot
whoseResourceHandler.getRendererTypeForResourceName(String)
does not returnnull
, and whoseUIComponent.getChildCount()
is zero, and whoseResourceHandler.isResourceRendered(FacesContext, String, String)
returnsfalse
, in anupdate
element with an identifier ofjakarta.faces.Resource
. - Process the components.
- Obtain the state by calling
StateManager.getViewState(jakarta.faces.context.FacesContext)
and write it out as anupdate
element with an identifier of<VIEW_ROOT_CONTAINER_CLIENT_ID><SEP>jakarta.faces.ViewState
where<VIEW_ROOT_CONTAINER_CLIENT_ID>
is the return fromUIComponent.getContainerClientId(FacesContext)
on the view from whence this state originated, and<SEP>
is the currently configuredUINamingContainer.getSeparatorChar(FacesContext)
. - If
isRenderAll()
returnsfalse
, then write out each script ofgetEvalScripts()
as aneval
element.
- Parameters:
phaseId
- thePhaseId
that indicates the lifecycle phase the components will be processed in.
- If
-
-