Class UISelectOne

All Implemented Interfaces:
EditableValueHolder, PartialStateHolder, StateHolder, TransientStateHolder, ValueHolder, ComponentSystemEventListener, FacesListener, SystemEventListenerHolder, EventListener
Direct Known Subclasses:
HtmlSelectOneListbox, HtmlSelectOneMenu, HtmlSelectOneRadio

public class UISelectOne extends UIInput

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 Details

    • COMPONENT_TYPE

      public static final String COMPONENT_TYPE

      The standard component type for this component.

      See Also:
    • COMPONENT_FAMILY

      public static final String COMPONENT_FAMILY

      The standard component family for this component.

      See Also:
    • INVALID_MESSAGE_ID

      public static final String 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

      public String 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 appropriate Renderer for this component instance. Note this method should NOT return null

      Overrides:
      getFamily in class UIInput
      Returns:
      the component family (not null).
    • getGroup

      public String 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 the value attribute is absent then the one from first component of the group will be used. If the UISelectItem 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

      public void setGroup(String group)

      Sets the name of the radio button group.

      Parameters:
      group - The name of the radio button group.
      Since:
      2.3
    • processValidators

      public void processValidators(FacesContext context)

      If getGroup() is set, and UIInput.getSubmittedValue() is empty, and at least one other component having the same group within a UIForm parent has a non-empty UIInput.getSubmittedValue() or returns true on UIInput.isLocalValueSet() or returns false on UIInput.isValid(), then skip validation for current component, else perform standard superclass processing by super.processValidators(context).

      Overrides:
      processValidators in class UIInput
      Parameters:
      context - FacesContext for the request we are processing
      See Also:
    • validateValue

      protected void validateValue(FacesContext context, Object value)

      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 the valid property to false.

      If UIInput.isRequired() returns true, and the current value is equal to the value of an inner UISelectItem whose UISelectItem.isNoSelectionOption() method returns true, enqueue an error message and set the valid property to false.

      Overrides:
      validateValue in class UIInput
      Parameters:
      context - The FacesContext for the current request
      value - The converted value to test for membership.
      Throws:
      NullPointerException - if context is null