code: static Class<?> getClassFromAttribute(FacesContext facesContext,
              Object attribute) throws FacesException
      {
          // Attention!
          // This code is duplicated in shared renderkit package.
          // If you change something here please do the same in the other class!
          
          Class<?> type = null;
          
          // if there is a value, it must be a ...
          // ... a ValueExpression that evaluates to a String or a Class
          if (attribute instanceof ValueExpression)
          {
              // get the value of the ValueExpression
              attribute = ((ValueExpression) attribute)
                      .getValue(facesContext.getELContext());
          }
          // ... String that is a fully qualified Java class name
          if (attribute instanceof String)
          {
              try
              {
                  type = Class.forName((String) attribute);
              }
              catch (ClassNotFoundException cnfe)
              {
                  throw new FacesException(
                          "Unable to find class "
                                  + attribute
                                  + " on the classpath.", cnfe);
              }
  
          }
          // ... a Class object
          else if (attribute instanceof Class)
          {
              type = (Class<?>) attribute;
          }
          
          return type;
      }
docs: Gets a Class object from a given component attribute. The attribute can
  be a ValueExpression (that evaluates to a String or a Class) or a
  String (that is a fully qualified Java class name) or a Class object.
  
  @param facesContext
  @param attribute
  @return
  @throws FacesException if the value is a String and the represented
  class cannot be found