code: @Override
      public void updateModel(FacesContext context) {
          super.updateModel(context);
          if (!hasValueExpression() && isValid() && isLocalValueSet()) {
              // QUESTION should this be done even when a value expression is present?
              // ANSWER: I don't see why not.
              context.getExternalContext().getRequestMap().put(getName(), getLocalValue());
          }
      }
docs: <p class="changed_added_2_0">Call through to superclass {@link
  UIInput#updateModel} then take the additional action of pushing
  the value into request scope if and only if the value is not a
  value expression, is valid, and the local value was set on this
  lifecycle execution.</p>
  @since 2.0