The definition of a Converter according to the Converter interface:
Object getAsObject(FacesContext context, UIComponent component, String value)
String getAsString(FacesContext context, UIComponent component, Object value)
The Faces Context is passed in so the converter can introspect various aspects of the request and response.
The UI component is passed in so you can access the actual component that the
conversion is done for.
In the getAsObject method the value passed in is a String since it is the value
coming from the browser and the method will convert that to a domain specific
object that you need.
In the getAsString method the value passed in is an Object since the domain
specific object now need to be converted to something (a string) the browser
Both method throws a ConverterException when the conversion fails. So if you want the request life cycle to terminate early this method needs to throw the ConverterException.
That's all for this blog entry, see you soon!