protected String getOptionAsString(FacesContext context, UIComponent component, Converter converter, Object value) throws ConverterException { if (!(component instanceof ValueHolder)) { return value == null ? null : value.toString(); } if (converter == null) { if (value == null) { return ""; } else if (value instanceof String) { return (String) value; } else { Converter implicitConverter = findImplicitConverter(context, component); return implicitConverter == null ? value.toString() : implicitConverter.getAsString(context, component, value); } } else { return converter.getAsString(context, component, value); } }