code: protected Converter createConverter()
          throws JspException {
  
          FacesContext context = FacesContext.getCurrentInstance();
          Converter converter = null;
          ValueExpression vb = null;
          
          // If "binding" is set, use it to create a converter instance.
          if (binding != null) {
              try {
  		vb = 
                  context.getApplication().getExpressionFactory().createValueExpression(context.getELContext(), binding, Object.class);
  		if (vb != null) {
                      converter = (Converter)vb.getValue(context.getELContext());
                      if (converter != null) {
                          return converter;
                      }
                  }
              } catch (Exception e) {
                  throw new JspException(e);
              }
          }
          // If "converterId" is set, use it to create the converter
          // instance.  If "converterId" and "binding" are both set, store the 
          // converter instance in the value of the property represented by
          // the value binding expression.      
          if (converterId != null) {
              try {
                  String converterIdVal = converterId;
                  if (UIComponentTag.isValueReference(converterId)) {
                      ValueExpression idBinding =
                          context.getApplication().getExpressionFactory().createValueExpression(context.getELContext(), converterId, Object.class);
                      converterIdVal = (String) idBinding.getValue(context.getELContext());
                  }
                  converter = context.getApplication().createConverter(converterIdVal);
                  if (converter != null) {
                      if (vb != null) {
                          vb.setValue(context.getELContext(), converter);
                      }
                  }
              } catch (Exception e) {
                  throw new JspException(e);
              }
          }
          return converter;
      }
docs: <p>Create and return a new {@link Converter} to be registered
  on our surrounding {@link UIComponent}.</p>
  
  @throws JspException if a new instance cannot be created