Pergunta

Estou usando o validador de hibernato para validar meus formulários. Estou tendo o "problema" de que o 9º do 14º mês se torna o segundo mês do próximo ano. (Apenas no exemplo de um cenário).

Eu queria saber como poderia impedir a conversão padrão e, em vez disso, mostrar uma mensagem de erro personalizada para ela.

Alguém também sabe como eu posso exibir uma mensagem apropriada se meu editor personalizado lançar uma ilegalArgumentException?

@InitBinder
    public void initBinder(WebDataBinder binder) {
        CustomDateEditor editor = new CustomDateEditor(new SimpleDateFormat("dd/MM/yyyy"), true);
        binder.registerCustomEditor(Date.class, editor);
    }

Registrei um alfabetizador porque o Spring-Portlet-MVC teve alguns problemas com a ligação.

Foi útil?

Solução

Este comportamento é controlado por DateFormat.setLenient() e não tem nada a ver com validação (com setLentient(false) Produz um erro de incompatibilidade de tipo na fase de ligação):

DateFormat df = new SimpleDateFormat("dd/MM/yyyy");
df.setLenient(false);
CustomDateEditor editor = new CustomDateEditor(df, true); 
binder.registerCustomEditor(Date.class, editor); 
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top