code: protected UIComponent createComponent(FaceletContext ctx)
      {
          UIComponent c = null;
          FacesContext faces = ctx.getFacesContext();
          Application app = faces.getApplication();
          if (this.binding != null)
          {
              ValueExpression ve = this.binding.getValueExpression(ctx, Object.class);
              
              c = app.createComponent(ve, faces, this.componentType);
              if (c != null)
              {
                  c.setValueExpression("binding", ve);
              }
          }
          else
          {
              c = app.createComponent(this.componentType);
          }
          return c;
      }
docs: If the binding attribute was specified, use that in conjuction with our componentType String variable to call
  createComponent on the Application, otherwise just pass the componentType String. <p /> If the binding was used,
  then set the ValueExpression "binding" on the created UIComponent.
  
  @see Application#createComponent(javax.faces.el.ValueBinding, javax.faces.context.FacesContext, java.lang.String)
  @see Application#createComponent(java.lang.String)
  @param ctx
  FaceletContext to use in creating a component
  @return