Criei uma nova classe com o código do converter do LocalDate do JodaTime para colocar uma mensagem de erro personalizada. O código ficou assim:
@Convert(LocalDate.class)
public class LocalDateConverter implements Converter<LocalDate> {
private final Localization localization;
public LocalDateConverter(Localization localization) {
this.localization = localization;
}
public LocalDate convert(String value, Class<? extends LocalDate> type, ResourceBundle bundle) {
try {
DateTime out = new LocaleBasedJodaTimeConverter(localization).convert(value, shortDate());
if (out == null) {
return null;
}
return out.toLocalDate();
} catch (Exception e) {
throw new ConversionError(MessageFormat.format(bundle.getString(value + " não é uma data válida"), value));
}
}
}
O converter funciona só que a mensagem aparece envolvida por ???
Exemplo: Se tentar entrar com a data 30/02/1980 aparece a mensagem:
De onde vem esses “???” envolvendo a mensagem de erro?