public class RichSubform
extends org.apache.myfaces.trinidad.component.UIXSubform
implements javax.faces.component.NamingContainer, javax.faces.component.behavior.ClientBehaviorHolder
The RichSubform represents an independently submittable region of a page. The contents of a subform will only be validated (or otherwise processed) if a component inside of the subform is responsible for submitting the page or if the default attribute is set to true while no other subform is responsible for submitting the page. This allows for comparatively fine-grained control of which components will be validated and pushed into the model without the compromises of using entirely separate form elements.
You should not have a component with immediate set to true in a subform. A Component with immediate set to true will still be validated even though the containing subform is not responsible for submitting the page.
We strongly recommend the use of a single <af:form> per page, and using <af:subform> where you might otherwise be tempted to use multiple forms. Multiple forms require multiple copies of page state, and user edits in forms that aren't submitted are always lost. When a page using subforms is submitted, page state is only written once, and all user edits are preserved.
See the UIXSubform Javadoc for more details on how subforms work.
Type | Phases | Description |
---|---|---|
org.apache.myfaces.trinidad.event.AttributeChangeEvent |
Invoke Application Apply Request Values |
Event delivered to describe an attribute change. Attribute change events are not delivered for any programmatic change to a property. They are only delivered when a renderer changes a property without the application's specific request. An example of an attribute change event might include the width of a column that supported client-side resizing. |
Modifier and Type | Field and Description |
---|---|
static org.apache.myfaces.trinidad.bean.PropertyKey |
CLIENT_ATTRIBUTES_KEY |
static org.apache.myfaces.trinidad.bean.PropertyKey |
CLIENT_COMPONENT_KEY |
static String |
COMPONENT_FAMILY |
static String |
COMPONENT_TYPE |
static org.apache.myfaces.trinidad.bean.PropertyKey |
CUSTOMIZATION_ID_KEY
Deprecated.
|
static org.apache.myfaces.trinidad.bean.PropertyKey |
DEFAULT_COMMAND_KEY |
static org.apache.myfaces.trinidad.bean.FacesBean.Type |
TYPE |
DEFAULT_KEY, SUBMITTED_KEY
BINDING_KEY, ID_KEY, RENDERED_KEY, RENDERER_TYPE_KEY, TRANSIENT_KEY
Modifier | Constructor and Description |
---|---|
|
RichSubform()
Construct an instance of the RichSubform.
|
protected |
RichSubform(String rendererType)
Construct an instance of the RichSubform with the specified renderer type.
|
Modifier and Type | Method and Description |
---|---|
void |
addClientBehavior(String eventName, javax.faces.component.behavior.ClientBehavior behavior) |
protected org.apache.myfaces.trinidad.bean.FacesBean.Type |
getBeanType() |
Set |
getClientAttributes()
Gets a set of client attribute names.
|
Map<String,List<javax.faces.component.behavior.ClientBehavior>> |
getClientBehaviors() |
String |
getCustomizationId()
Deprecated.
This attribute is deprecated. This attribute will be removed in the next release. Use the 'id' attribute instead.
|
String |
getDefaultCommand()
Gets the client id of the command component inside the subform whose action should be invoked by default, when the enter key is pressed with focus inside the subform.
|
String |
getDefaultEventName() |
Collection<String> |
getEventNames() |
String |
getFamily() |
boolean |
isClientComponent()
Gets whether a client-side component will be generated.
|
void |
setClientAttributes(Set clientAttributes)
Sets a set of client attribute names.
|
void |
setClientComponent(boolean clientComponent)
Sets whether a client-side component will be generated.
|
void |
setCustomizationId(String customizationId)
Deprecated.
This attribute is deprecated. This attribute will be removed in the next release. Use the 'id' attribute instead.
|
void |
setDefaultCommand(String defaultCommand)
Sets the client id of the command component inside the subform whose action should be invoked by default, when the enter key is pressed with focus inside the subform.
|
invokeOnComponent, isDefault, isSubmitted, processDecodes, processUpdates, processValidators, queueEvent, setDefault, setSubmitted
adaptMethodBinding, addAttributeChange, addAttributeChangeListener, addComponentChange, addComponentChange, addComponentChangeFilter, addFacesListener, broadcast, broadcastToMethodBinding, broadcastToMethodExpression, clearCachedClientIds, clearInitialState, createFacesBean, decode, decodeChildren, decodeChildrenImpl, encodeBegin, encodeChildren, encodeEnd, findComponent, getAttributeChangeListener, getAttributeChangeListeners, getAttributes, getBooleanProperty, getChildCount, getChildren, getClientId, getComponentChangeFilters, getContainerClientId, getFacesBean, getFacesContext, getFacesListeners, getFacet, getFacetCount, getFacetNames, getFacets, getFacetsAndChildren, getId, getIntProperty, getLifecycleRenderer, getListenersForEventClass, getParent, getPassThroughAttributes, getProperty, getPropertyKey, getRenderedFacetsAndChildren, getRenderer, getRendererType, getRendersChildren, getValueBinding, getValueExpression, initialStateMarked, invokeOnChildrenComponents, invokeOnNamingContainerComponent, isRendered, isTransient, markInitialState, processRestoreState, processSaveState, removeAttributeChangeListener, removeComponentChangeFilter, removeFacesListener, restoreState, satisfiesPartialTrigger, saveState, setAttributeChangeListener, setAttributeChangeListener, setBooleanProperty, setId, setIntProperty, setParent, setProperty, setRendered, setRendererType, setTransient, setupFlattenedChildrenContext, setupFlattenedContext, setValueBinding, setValueExpression, subscribeToEvent, tearDownFlattenedChildrenContext, tearDownFlattenedContext, toString, unsubscribeFromEvent, updateChildren, updateChildrenImpl, validateChildren, validateChildrenImpl
addPartialTarget, broadcastInContext, clearCachedClientIds, defaultGetRenderedFacetsAndChildren, encodeFlattenedChild, encodeFlattenedChildren, getLogicalParent, getLogicalParent, getStateHelper, getStateHelper, isVisitable, partialEncodeVisit, processFlattenedChildren, processFlattenedChildren, processFlattenedChildren, processFlattenedChildren, setPartialTarget, setupChildrenEncodingContext, setupChildrenVisitingContext, setupEncodingContext, setUpEncodingContext, setupVisitingContext, tearDownChildrenEncodingContext, tearDownChildrenVisitingContext, tearDownEncodingContext, tearDownVisitingContext, visitAllChildren, visitChildren, visitChildren, visitTree, visitTree
encodeAll, getClientId, getCompositeComponentParent, getContainerClientId, getCurrentComponent, getCurrentCompositeComponent, getNamingContainer, getPassThroughAttributes, getResourceBundleMap, getTransientStateHelper, getTransientStateHelper, isCompositeComponent, isInView, popComponentFromEL, processEvent, pushComponentToEL, restoreTransientState, saveTransientState, setInView
public static final org.apache.myfaces.trinidad.bean.FacesBean.Type TYPE
public static final org.apache.myfaces.trinidad.bean.PropertyKey DEFAULT_COMMAND_KEY
@Deprecated public static final org.apache.myfaces.trinidad.bean.PropertyKey CUSTOMIZATION_ID_KEY
public static final org.apache.myfaces.trinidad.bean.PropertyKey CLIENT_COMPONENT_KEY
public static final org.apache.myfaces.trinidad.bean.PropertyKey CLIENT_ATTRIBUTES_KEY
public static final String COMPONENT_FAMILY
public static final String COMPONENT_TYPE
public RichSubform()
protected RichSubform(String rendererType)
rendererType
- the renderer type Construct an instance of the RichSubform.public final String getDefaultCommand()
Identifiers are relative to the subform component, and must account for NamingContainers. You can use a single colon to start the search from the root, or multiple colons to move up through the NamingContainers - "::" will pop out of the component's naming container and begin the search from there, ":::" will pop out of two naming containers and begin the search from there, etc.
public final void setDefaultCommand(String defaultCommand)
Identifiers are relative to the subform component, and must account for NamingContainers. You can use a single colon to start the search from the root, or multiple colons to move up through the NamingContainers - "::" will pop out of the component's naming container and begin the search from there, ":::" will pop out of two naming containers and begin the search from there, etc.
defaultCommand
- the new defaultCommand value@Deprecated public final String getCustomizationId()
@Deprecated public final void setCustomizationId(String customizationId)
customizationId
- the new customizationId valuepublic final boolean isClientComponent()
public final void setClientComponent(boolean clientComponent)
clientComponent
- the new clientComponent valuepublic final Set getClientAttributes()
public final void setClientAttributes(Set clientAttributes)
clientAttributes
- the new clientAttributes valuepublic String getDefaultEventName()
getDefaultEventName
in interface javax.faces.component.behavior.ClientBehaviorHolder
getDefaultEventName
in class org.apache.myfaces.trinidad.component.UIXComponentBase
public Collection<String> getEventNames()
getEventNames
in interface javax.faces.component.behavior.ClientBehaviorHolder
public Map<String,List<javax.faces.component.behavior.ClientBehavior>> getClientBehaviors()
getClientBehaviors
in interface javax.faces.component.behavior.ClientBehaviorHolder
getClientBehaviors
in class org.apache.myfaces.trinidad.component.UIXComponentBase
public void addClientBehavior(String eventName, javax.faces.component.behavior.ClientBehavior behavior)
addClientBehavior
in interface javax.faces.component.behavior.ClientBehaviorHolder
addClientBehavior
in class org.apache.myfaces.trinidad.component.UIXComponentBase
public String getFamily()
getFamily
in class org.apache.myfaces.trinidad.component.UIXSubform
protected org.apache.myfaces.trinidad.bean.FacesBean.Type getBeanType()
getBeanType
in class org.apache.myfaces.trinidad.component.UIXSubform