code: @Override
      public void decode(FacesContext context) {
          if (context == null) {
              throw new NullPointerException();
          }
  
          // QUESTION can we move forward and support an array? no different than UISelectMany; perhaps need to know
          // if the value expression is single or multi-valued
          // ANSWER: I'd rather not right now.
          String paramValue = context.getExternalContext().getRequestParameterMap().get(getName());
  
          // submitted value will stay as previous value (null on initial request) if a parameter is absent
          if (paramValue != null) {
              setSubmittedValue(paramValue);
          }
  
          rawValue = (String) getSubmittedValue();
          setValid(true);
  
      }
docs: <p class="changed_added_2_0">Override behavior from superclass to
  pull a value from the incoming request parameter map under the
  name given by {@link #getName} and store it with a call to {@link
  UIInput#setSubmittedValue}.</p>
  @since 2.0