Gibt man in seiner Spring Applikation in ein (z.B.) Float Feld keine Zahl ein, bekommt man als Fehler eine sehr unschöne Meldung. Zunächst ist nicht ganz klar, wieso keine User-freundliche Meldung angezeigt wird.

Fehlermeldung:
Failed to convert property value of type java.lang.String to required type java.lang.Float for property entfernung; nested exception is org.springframework.core.convert.ConversionFailedException: Unable to convert value "keine Zahl" from type java.lang.String to type java.lang.Float; nested exception is java.lang.NumberFormatException: For input string: "keineZahl"

Der Grund dafür ist, dass keine Message hinterlegt ist, die bei einem Type Mismatch angezeigt werden soll. Dazu fügt man folgendes in die message.properties Datei hinzu:

typeMismatch.[Klasse]=[Fehlermeldung]

Also zum Beispiel für eine Float Zahl:

typeMismatch.java.lang.Float=Das ist keine gültige Zahl.

Spring erlaubt es auch, eigene Converter zu schreiben (siehe Dokumentation, Kapitel Validation, Data Binding, and Type Conversion). Kann ein Wert nicht konvertiert werden, sollte man eine java.lang.IllegalArgumentException werfen. Die Message in der Properties-Datei sieht dann zum Beispiel so aus:

typeMismatch.de.example.exampleApp.entity.Example=Das ist kein gültiges Beispiel.