java.lang.Object
jakarta.faces.component.UIComponent
jakarta.faces.component.UIComponentBase
jakarta.faces.component.UISelectItems
org.omnifaces.component.model.SelectItemGroups
- All Implemented Interfaces:
PartialStateHolder
,StateHolder
,TransientStateHolder
,ComponentSystemEventListener
,FacesListener
,SystemEventListenerHolder
,EventListener
The o:selectItemGroups
is an extension of UISelectItems
which allows you to iterate over a
nested collection representing groups of select items. This is basically the UIComponent
counterpart of
jakarta.faces.model.SelectItemGroup
. There is no equivalent (yet) in the standard Faces API. Currently the
only way to represent SelectItemGroup
in UI is to manually create and populate them in a backing bean which
can end up to be quite verbose.
Usage
Below example assumes a List<Category>
as value wherein Category
in turn has a
List<Product>
.
<h:selectOneMenu value="#{bean.selectedProduct}" converter="omnifaces.SelectItemsConverter"> <f:selectItem itemValue="#{null}" /> <o:selectItemGroups value="#{bean.categories}" var="category" itemLabel="#{category.name}"> <f:selectItems value="#{category.products}" var="product" itemLabel="#{product.name}" /> </o:selectItemGroups> </h:selectOneMenu>
- Since:
- 3.0
- Author:
- Bauke Scholtz
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final String
The component type, which is "org.omnifaces.component.model.SelectItemGroups".Fields inherited from class jakarta.faces.component.UISelectItems
COMPONENT_FAMILY
Fields inherited from class jakarta.faces.component.UIComponent
ATTRS_WITH_DECLARED_DEFAULT_VALUES, BEANINFO_KEY, bindings, COMPOSITE_COMPONENT_TYPE_KEY, COMPOSITE_FACET_NAME, FACETS_KEY, VIEW_LOCATION_KEY
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptiongetValue()
An override which wraps each UISelectItem(s) child in aSelectItemGroup
.void
setValueExpression
(String name, ValueExpression binding) An override which checks if this isn't been invoked onvar
attribute.Methods inherited from class jakarta.faces.component.UISelectItems
getFamily, setValue
Methods inherited from class jakarta.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, invokeOnComponent, isRendered, isTransient, markInitialState, processDecodes, processRestoreState, processSaveState, processUpdates, processValidators, queueEvent, removeFacesListener, restoreAttachedState, restoreState, saveAttachedState, saveState, setId, setParent, setRendered, setRendererType, setTransient, subscribeToEvent, unsubscribeFromEvent
Methods inherited from class jakarta.faces.component.UIComponent
encodeAll, getClientId, getCompositeComponentParent, getContainerClientId, getCurrentComponent, getCurrentCompositeComponent, getNamingContainer, getPassThroughAttributes, getResourceBundleMap, getStateHelper, getStateHelper, getTransientStateHelper, getTransientStateHelper, getValueExpression, initialStateMarked, isCompositeComponent, isInView, isVisitable, popComponentFromEL, processEvent, pushComponentToEL, restoreTransientState, saveTransientState, setInView, visitTree
-
Field Details
-
COMPONENT_TYPE
The component type, which is "org.omnifaces.component.model.SelectItemGroups".- See Also:
-
-
Constructor Details
-
SelectItemGroups
public SelectItemGroups()
-
-
Method Details
-
setValueExpression
An override which checks if this isn't been invoked onvar
attribute. Finally it delegates to the super method.- Overrides:
setValueExpression
in classUISelectItems
- Throws:
IllegalArgumentException
- When this value expression is been set onvar
attribute.
-
getValue
An override which wraps each UISelectItem(s) child in aSelectItemGroup
.- Overrides:
getValue
in classUISelectItems
-