- All Implemented Interfaces:
EditableValueHolder
,PartialStateHolder
,StateHolder
,TransientStateHolder
,ValueHolder
,ComponentSystemEventListener
,FacesListener
,SystemEventListenerHolder
,EventListener
- Direct Known Subclasses:
HtmlSelectOneListbox
,HtmlSelectOneMenu
,HtmlSelectOneRadio
UISelectOne is a UIComponent
that represents the user's choice
of zero or one items from among a discrete set of available options. The user can modify the selected value.
Optionally, the component can be preconfigured with a currently selected item, by storing it as the
value
property of the component.
This component is generally rendered as a select box or a group of radio buttons.
By default, the rendererType
property is set to "jakarta.faces.Menu
". 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.static final String
The message identifier of theFacesMessage
to be created if a value not matching the available options is specified.Fields inherited from class jakarta.faces.component.UIInput
ALWAYS_PERFORM_VALIDATION_WHEN_REQUIRED_IS_TRUE, CONVERSION_MESSAGE_ID, EMPTY_STRING_AS_NULL_PARAM_NAME, REQUIRED_MESSAGE_ID, UPDATE_MESSAGE_ID, VALIDATE_EMPTY_FIELDS_PARAM_NAME
Fields inherited from class jakarta.faces.component.UIComponent
ATTRS_WITH_DECLARED_DEFAULT_VALUES, BEANINFO_KEY, COMPOSITE_COMPONENT_TYPE_KEY, COMPOSITE_FACET_NAME, FACETS_KEY, VIEW_LOCATION_KEY
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionReturn the identifier of the component family to which this component belongs.getGroup()
Returns the name of the radio button group.void
processValidators
(FacesContext context) IfgetGroup()
is set, andUIInput.getSubmittedValue()
is empty, and at least one other component having the same group within aUIForm
parent has a non-emptyUIInput.getSubmittedValue()
or returnstrue
onUIInput.isLocalValueSet()
or returnsfalse
onUIInput.isValid()
, then skip validation for current component, else perform standard superclass processing bysuper.processValidators(context)
.void
Sets the name of the radio button group.protected void
validateValue
(FacesContext context, Object value) In addition to the standard validation behavior inherited fromUIInput
, ensure that any specified value is equal to one of the available options.Methods inherited from class jakarta.faces.component.UIInput
addValidator, addValueChangeListener, clearInitialState, compareValues, decode, getConvertedValue, getConverterMessage, getRequiredMessage, getSubmittedValue, getValidatorMessage, getValidators, getValue, getValueChangeListeners, isEmpty, isImmediate, isLocalValueSet, isRequired, isValid, markInitialState, processDecodes, processUpdates, removeValidator, removeValueChangeListener, resetValue, restoreState, saveState, setConverterMessage, setImmediate, setLocalValueSet, setRequired, setRequiredMessage, setSubmittedValue, setValid, setValidatorMessage, setValue, updateModel, validate
Methods inherited from class jakarta.faces.component.UIOutput
getConverter, getLocalValue, setConverter
Methods inherited from class jakarta.faces.component.UIComponentBase
addClientBehavior, addFacesListener, broadcast, 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, processRestoreState, processSaveState, queueEvent, removeFacesListener, restoreAttachedState, saveAttachedState, 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, setValueExpression, visitTree
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface jakarta.faces.component.ValueHolder
getConverter, getLocalValue, setConverter
-
Field Details
-
COMPONENT_TYPE
-
COMPONENT_FAMILY
The standard component family for this component.
- See Also:
-
INVALID_MESSAGE_ID
The message identifier of the
FacesMessage
to be created if a value not matching the available options is specified.- See Also:
-
-
Constructor Details
-
UISelectOne
public UISelectOne()Create a new
UISelectOne
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
-
getGroup
Returns the name of the radio button group.
Radio button components having the same group within a
UIForm
parent will uncheck all others when being checked. If thevalue
attribute is absent then the one from first component of the group will be used. If theUISelectItem
child is absent then the one from first component of the group will be used.- Returns:
- The name of the radio button group.
- Since:
- 2.3
-
setGroup
Sets the name of the radio button group.
- Parameters:
group
- The name of the radio button group.- Since:
- 2.3
-
processValidators
If
getGroup()
is set, andUIInput.getSubmittedValue()
is empty, and at least one other component having the same group within aUIForm
parent has a non-emptyUIInput.getSubmittedValue()
or returnstrue
onUIInput.isLocalValueSet()
or returnsfalse
onUIInput.isValid()
, then skip validation for current component, else perform standard superclass processing bysuper.processValidators(context)
.- Overrides:
processValidators
in classUIInput
- Parameters:
context
-FacesContext
for the request we are processing- See Also:
-
validateValue
In addition to the standard validation behavior inherited from
UIInput
, ensure that any specified value is equal to one of the available options. Before comparing each option, coerce the option value type to the type of this component's value following the Expression Language coercion rules. If the specified value is not equal to any of the options, enqueue an error message and set thevalid
property tofalse
.If
UIInput.isRequired()
returnstrue
, and the current value is equal to the value of an innerUISelectItem
whoseUISelectItem.isNoSelectionOption()
method returnstrue
, enqueue an error message and set thevalid
property tofalse
.- Overrides:
validateValue
in classUIInput
- Parameters:
context
- TheFacesContext
for the current requestvalue
- The converted value to test for membership.- Throws:
NullPointerException
- ifcontext
isnull
-