Class UIForm
- All Implemented Interfaces:
EventListener
,NamingContainer
,PartialStateHolder
,StateHolder
,TransientStateHolder
,UniqueIdVendor
,ComponentSystemEventListener
,FacesListener
,SystemEventListenerHolder
- Direct Known Subclasses:
HtmlForm
UIForm is a UIComponent
that represents an input form to be presented to the
user, and whose child components represent (among other things) the
input fields to be included when the form is submitted.
By default, the rendererType
property must be set to
"javax.faces.Form
". This value can be changed by calling the
setRendererType()
method.
-
Field Summary
Modifier and TypeFieldDescriptionstatic final String
The standard component family for this component.static final String
The standard component type for this component.Fields inherited from class javax.faces.component.UIComponent
ATTRS_WITH_DECLARED_DEFAULT_VALUES, BEANINFO_KEY, bindings, COMPOSITE_COMPONENT_TYPE_KEY, COMPOSITE_FACET_NAME, CURRENT_COMPONENT, CURRENT_COMPOSITE_COMPONENT, FACETS_KEY, HONOR_CURRENT_COMPONENT_ATTRIBUTES_PARAM_NAME, VIEW_LOCATION_KEY
Fields inherited from interface javax.faces.component.NamingContainer
SEPARATOR_CHAR
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptioncreateUniqueId
(FacesContext context, String seed) Generate an identifier for a component.getContainerClientId
(FacesContext context) Override theUIComponent.getContainerClientId(javax.faces.context.FacesContext)
to allow users to disable this form from prepending itsclientId
to its descendent'sclientIds
depending on the value of this form'sisPrependId()
property.Return the identifier of the component family to which this component belongs.boolean
Is the id prepended.boolean
Returns the current value of thesubmitted
property.void
processDecodes
(FacesContext context) OverrideUIComponent.processDecodes(javax.faces.context.FacesContext)
to ensure that the form is decoded before its children.void
processUpdates
(FacesContext context) OverrideUIComponent.processUpdates(javax.faces.context.FacesContext)
to ensure that the children of thisUIForm
instance are only processed ifisSubmitted()
returnstrue
.void
processValidators
(FacesContext context) OverrideUIComponent.processValidators(javax.faces.context.FacesContext)
to ensure that the children of thisUIForm
instance are only processed ifisSubmitted()
returnstrue
.void
setPrependId
(boolean prependId) void
setSubmitted
(boolean submitted) If thisUIForm
instance (as opposed to other forms in the page) is experiencing a submit during this request processing lifecycle, this method must be called, withtrue
as the argument, during theUIComponent.decode(javax.faces.context.FacesContext)
for thisUIForm
instance.boolean
visitTree
(VisitContext context, VisitCallback callback) Perform a tree visit starting at this node in the tree.Methods inherited from class javax.faces.component.UIComponentBase
addClientBehavior, addFacesListener, broadcast, clearInitialState, decode, encodeBegin, encodeChildren, encodeEnd, findComponent, getAttributes, getChildCount, getChildren, getClientBehaviors, getClientId, getDefaultEventName, getEventNames, getFacesContext, getFacesListeners, getFacet, getFacetCount, getFacets, getFacetsAndChildren, getId, getListenersForEventClass, getParent, getPassThroughAttributes, getRenderer, getRendererType, getRendersChildren, getValueBinding, invokeOnComponent, isRendered, isTransient, markInitialState, processRestoreState, processSaveState, queueEvent, removeFacesListener, restoreAttachedState, restoreState, saveAttachedState, saveState, setId, setParent, setRendered, setRendererType, setTransient, setValueBinding, subscribeToEvent, unsubscribeFromEvent
Methods inherited from class javax.faces.component.UIComponent
encodeAll, getClientId, getCompositeComponentParent, getCurrentComponent, getCurrentCompositeComponent, getNamingContainer, getPassThroughAttributes, getResourceBundleMap, getStateHelper, getStateHelper, getTransientStateHelper, getTransientStateHelper, getValueExpression, initialStateMarked, isCompositeComponent, isInView, isVisitable, popComponentFromEL, processEvent, pushComponentToEL, restoreTransientState, saveTransientState, setInView, setValueExpression
-
Field Details
-
COMPONENT_TYPE
The standard component type for this component.
- See Also:
-
COMPONENT_FAMILY
The standard component family for this component.
- See Also:
-
-
Constructor Details
-
UIForm
public UIForm()Create a new
UIForm
instance with default property values.
-
-
Method Details
-
getFamily
Description copied from class:UIComponent
Return the identifier of the component family to which this component belongs. This identifier, in conjunction with the value of the
rendererType
property, may be used to select the appropriateRenderer
for this component instance. Note this method should NOT returnnull
- Specified by:
getFamily
in classUIComponent
- Returns:
- the component family (not null).
-
isSubmitted
public boolean isSubmitted()Returns the current value of the
submitted
property. The default value isfalse
. SeesetSubmitted(boolean)
for details.This property must be kept as a transient property using the
UIComponent.getTransientStateHelper()
.- Returns:
true
if the form was submitted,false
otherwise.
-
setSubmitted
public void setSubmitted(boolean submitted) If this
UIForm
instance (as opposed to other forms in the page) is experiencing a submit during this request processing lifecycle, this method must be called, withtrue
as the argument, during theUIComponent.decode(javax.faces.context.FacesContext)
for thisUIForm
instance. If thisUIForm
instance is not experiencing a submit, this method must be called, withfalse
as the argument, during theUIComponent.decode(javax.faces.context.FacesContext)
for thisUIForm
instance.The value of a
UIForm
's submitted property must not be saved as part of its state.This property must be kept as a transient property using the
UIComponent.getTransientStateHelper()
.- Parameters:
submitted
- the new value of the submitted flag.
-
isPrependId
public boolean isPrependId()Is the id prepended.- Returns:
true
if it is,false
otherwise.
-
setPrependId
public void setPrependId(boolean prependId) -
processDecodes
Override
UIComponent.processDecodes(javax.faces.context.FacesContext)
to ensure that the form is decoded before its children. This is necessary to allow thesubmitted
property to be correctly set.- Overrides:
processDecodes
in classUIComponentBase
- Parameters:
context
-FacesContext
for the request we are processing- Throws:
NullPointerException
- ifcontext
isnull
-
processValidators
Override
UIComponent.processValidators(javax.faces.context.FacesContext)
to ensure that the children of thisUIForm
instance are only processed ifisSubmitted()
returnstrue
.- Overrides:
processValidators
in classUIComponentBase
- Parameters:
context
-FacesContext
for the request we are processing- Throws:
NullPointerException
- ifcontext
isnull
- See Also:
-
processUpdates
Override
UIComponent.processUpdates(javax.faces.context.FacesContext)
to ensure that the children of thisUIForm
instance are only processed ifisSubmitted()
returnstrue
.- Overrides:
processUpdates
in classUIComponentBase
- Parameters:
context
-FacesContext
for the request we are processing- Throws:
NullPointerException
- ifcontext
isnull
-
createUniqueId
Generate an identifier for a component. The identifier will be prefixed with UNIQUE_ID_PREFIX, and will be unique within this component-container. Optionally, a unique seed value can be supplied by component creators which should be included in the generated unique id.
If the
prependId
property has the valuefalse
, this method must callcreateUniqueId
on the next ancestorUniqueIdVendor
.- Specified by:
createUniqueId
in interfaceUniqueIdVendor
- Parameters:
context
- FacesContextseed
- an optional seed value - e.g. based on the position of the component in the VDL-template- Returns:
- a unique-id in this component-container
-
getContainerClientId
Override the
UIComponent.getContainerClientId(javax.faces.context.FacesContext)
to allow users to disable this form from prepending itsclientId
to its descendent'sclientIds
depending on the value of this form'sisPrependId()
property.- Overrides:
getContainerClientId
in classUIComponent
- Parameters:
context
- the Faces context.- Returns:
- the container client id.
-
visitTree
Description copied from class:UIComponent
Perform a tree visit starting at this node in the tree.
UIComponent.visitTree() implementations do not invoke the
VisitCallback
directly, but instead callVisitContext.invokeVisitCallback(javax.faces.component.UIComponent, javax.faces.component.visit.VisitCallback)
to invoke the callback. This allowsVisitContext
implementations to provide optimized tree traversals, for example by only calling theVisitCallback
for a subset of components.UIComponent.visitTree() implementations must call UIComponent.pushComponentToEL() before performing the visit and UIComponent.popComponentFromEL() after the visit.
- Overrides:
visitTree
in classUIComponent
- Parameters:
context
- theVisitContext
for this visitcallback
- theVisitCallback
instance whosevisit
method will be called for each node visited.- Returns:
- component implementations may return
true
to indicate that the tree visit is complete (eg. all components that need to be visited have been visited). This results in the tree visit being short-circuited such that no more components are visited.
- See Also:
-