public class UIForm extends UIComponentBase implements NamingContainer, UniqueIdVendor
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.
Modifier and Type | Field and Description |
---|---|
static java.lang.String |
COMPONENT_FAMILY
The standard component family for this component.
|
static java.lang.String |
COMPONENT_TYPE
The standard component type for this component.
|
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
SEPARATOR_CHAR
Constructor and Description |
---|
UIForm()
Create a new
UIForm instance with default property values. |
Modifier and Type | Method and Description |
---|---|
java.lang.String |
createUniqueId(FacesContext context,
java.lang.String seed)
Generate an identifier for a component. |
java.lang.String |
getContainerClientId(FacesContext context)
Override the
UIComponent.getContainerClientId(javax.faces.context.FacesContext) to allow users to disable this form
from prepending its clientId to its descendent's clientIds
depending on the value of this form's isPrependId() property. |
java.lang.String |
getFamily()
Return the identifier of the component family to which this component belongs. |
boolean |
isPrependId()
Is the id prepended.
|
boolean |
isSubmitted()
Returns the current value of the
submitted property. |
void |
processDecodes(FacesContext context)
Override
UIComponent.processDecodes(javax.faces.context.FacesContext) to ensure that the form is decoded
before its children. |
void |
processUpdates(FacesContext context)
Override
UIComponent.processUpdates(javax.faces.context.FacesContext) to ensure that the children of this
UIForm instance are only processed if isSubmitted() returns
true . |
void |
processValidators(FacesContext context)
Override |
void |
setPrependId(boolean prependId) |
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, with true as the argument,
during the UIComponent.decode(javax.faces.context.FacesContext) for this UIForm instance. |
boolean |
visitTree(VisitContext context,
VisitCallback callback)
Perform a tree visit starting at this node in the tree. |
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
encodeAll, getClientId, getCompositeComponentParent, getCurrentComponent, getCurrentCompositeComponent, getNamingContainer, getPassThroughAttributes, getResourceBundleMap, getStateHelper, getStateHelper, getTransientStateHelper, getTransientStateHelper, getValueExpression, initialStateMarked, isCompositeComponent, isInView, isVisitable, popComponentFromEL, processEvent, pushComponentToEL, restoreTransientState, saveTransientState, setInView, setValueExpression
public static final java.lang.String COMPONENT_TYPE
The standard component type for this component.
public static final java.lang.String COMPONENT_FAMILY
The standard component family for this component.
public UIForm()
Create a new UIForm
instance with default property values.
public java.lang.String getFamily()
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 appropriate Renderer
for this component
instance. Note this method should NOT return null
getFamily
in class UIComponent
public boolean isSubmitted()
Returns the current value of the
submitted
property. The default value is false
. See
setSubmitted(boolean)
for details.
This property must be kept as a transient property using the
UIComponent.getTransientStateHelper()
.
true
if the form was submitted, false
otherwise.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, with true
as the argument,
during the UIComponent.decode(javax.faces.context.FacesContext)
for this UIForm
instance. If
this UIForm
instance is not experiencing a
submit, this method must be called, with false
as the argument, during the
UIComponent.decode(javax.faces.context.FacesContext)
for this UIForm
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()
.
submitted
- the new value of the submitted flag.public boolean isPrependId()
true
if it is, false
otherwise.public void setPrependId(boolean prependId)
public void processDecodes(FacesContext context)
Override UIComponent.processDecodes(javax.faces.context.FacesContext)
to ensure that the form is decoded
before its children. This is necessary to allow the submitted
property to be correctly set.
processDecodes
in class UIComponentBase
context
- FacesContext
for the request we are processingjava.lang.NullPointerException
- if context
is null
public void processValidators(FacesContext context)
Override UIComponent.processValidators(javax.faces.context.FacesContext)
to ensure that the children of this
UIForm
instance are only processed if isSubmitted()
returns
true
.
processValidators
in class UIComponentBase
context
- FacesContext
for the request we are processingjava.lang.NullPointerException
- if context
is null
PreValidateEvent
,
PostValidateEvent
public void processUpdates(FacesContext context)
Override UIComponent.processUpdates(javax.faces.context.FacesContext)
to ensure that the children of this
UIForm
instance are only processed if isSubmitted()
returns
true
.
processUpdates
in class UIComponentBase
context
- FacesContext
for the request we are processingjava.lang.NullPointerException
- if context
is null
public java.lang.String createUniqueId(FacesContext context, java.lang.String seed)
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 value false
, this method must
call createUniqueId
on the next ancestor UniqueIdVendor
.
createUniqueId
in interface UniqueIdVendor
context
- FacesContextseed
- an optional seed value - e.g. based on the position of the component in the
VDL-templatepublic java.lang.String getContainerClientId(FacesContext context)
Override the UIComponent.getContainerClientId(javax.faces.context.FacesContext)
to allow users to disable this form
from prepending its clientId
to its descendent's clientIds
depending on the value of this form's isPrependId()
property.
getContainerClientId
in class UIComponent
context
- the Faces context.public boolean visitTree(VisitContext context, VisitCallback callback)
UIComponent
Perform a tree visit starting at this node in the tree.
UIComponent.visitTree() implementations do not invoke the VisitCallback
directly, but instead call VisitContext.invokeVisitCallback(javax.faces.component.UIComponent, javax.faces.component.visit.VisitCallback)
to invoke the
callback. This allows VisitContext
implementations to provide optimized
tree traversals, for example by only calling the VisitCallback
for a subset of components.
UIComponent.visitTree() implementations must call UIComponent.pushComponentToEL() before performing the visit and UIComponent.popComponentFromEL() after the visit.
visitTree
in class UIComponent
context
- the VisitContext
for this visitcallback
- the VisitCallback
instance whose visit
method
will be called for each node visited.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.
UIComponent.visitTree(javax.faces.component.visit.VisitContext, javax.faces.component.visit.VisitCallback)