Hibernate Validator: wie Rollover behandeln? (28/14/2009 wird 28/2/2010)
-
25-09-2019 - |
Frage
Ich bin mit dem Hibernate Validator meine Formen zu validieren. Ich habe das „Problem“, dass der 9. des 14. Monats im zweiten Monat im nächsten Jahr wird. (Nur en Beispiel eines Szenarios).
Ich habe mich gefragt, wie ich die Standard-Konvertierung verhindern könnte und zeigen stattdessen eine benutzerdefinierte Fehlermeldung für sie.
Hat jemand auch wissen, wie kann ich eine approperiate Meldung an, wenn meine benutzerdefinierten Editor eine Illegal wirft?
@InitBinder
public void initBinder(WebDataBinder binder) {
CustomDateEditor editor = new CustomDateEditor(new SimpleDateFormat("dd/MM/yyyy"), true);
binder.registerCustomEditor(Date.class, editor);
}
angemeldet ich eine Custom weil feder Portlet-mvc mit der Bindung hatte einige Probleme.
Lösung
Dieses Verhalten wird durch DateFormat.setLenient()
gesteuert und hat nichts mit Validierung zu tun (mit setLentient(false)
es einen Typenkonfliktfehler bei der Bindungsphase erzeugt):
DateFormat df = new SimpleDateFormat("dd/MM/yyyy");
df.setLenient(false);
CustomDateEditor editor = new CustomDateEditor(df, true);
binder.registerCustomEditor(Date.class, editor);