code: public Object convertToType(Object obj,
                                  Class<?> targetType) {
          boolean propertyResolvedSave = isPropertyResolved();
          try {
              setPropertyResolved(false);
              ELResolver elResolver = getELResolver();
              if (elResolver != null) {
                  Object res = elResolver.convertToType(this, obj, targetType);
                  if (isPropertyResolved()) {
                      return res;
                  }
              }
          } catch (ELException ex) {
              throw ex;
          } catch (Exception ex) {
              throw new ELException(ex);
          } finally {
              setPropertyResolved(propertyResolvedSave);
          }
          return ELUtil.getExpressionFactory().coerceToType(obj, targetType);
      }
docs: Converts an object to a specific type.  If a custom converter in the
  <code>ELResolver</code> handles this conversion, it is used.  Otherwise
  the standard coercions is applied.
  
  <p>An <code>ELException</code> is thrown if an error occurs during
  the conversion.</p>
  
  @param obj The object to convert.
  @param targetType The target type for the conversion.
  @throws ELException thrown if errors occur.
  
  @since EL 3.0