1
resposta

Formato da data padrão, através do AppWebConfiguration

Segui as orientações conforme descrito na aula, contudo, a data está retornando null ao imprimí-la no console. Se coloco a formatação diretamente no Produto.java, como a seguir funciona:

    @DateTimeFormat(pattern="dd/MM/yyyy")
    private Calendar dataLancamento;

Mas quero manter a formatação no AppWebConfiguration e dessa forma não está funcionando. Quando retiro o tratamento de mensagens para typeMismatch e informo a data 23/02/2020, o erro informado é:

Failed to convert property value of type java.lang.String to required type java.util.Calendar for property dataLancamento; nested exception is org.springframework.core.convert.ConversionFailedException: Failed to convert from type [java.lang.String] to type [@org.springframework.format.annotation.DateTimeFormat java.util.Calendar] for value 23/02/2020; nested exception is java.lang.IllegalArgumentException: Parse attempt failed for value [23/02/2020]

O método de conversão no AppWebConfiguration está assim:

      @Bean 
      public FormattingConversionService mvcConversionService() {
          DefaultFormattingConversionService conversionService = new
          DefaultFormattingConversionService(); DateFormatterRegistrar registrar = new
          DateFormatterRegistrar(); registrar.setFormatter(new
          DateFormatter("dd/MM/yyyy"));
          registrar.registerFormatters(conversionService);

          return conversionService; 
      }

Estou rodando o projeto do curso no Java11, com Tocamt 8.5 e Spring 5.2.3.

Pode ser questão de versão do Java ou do Spring? Obrigado.

1 resposta

Fala Eduardo, tudo bem?

Sua classe AppWebConfiguration está anotada conforme abaixo?

@EnableWebMvc
@ComponentScan(basePackageClasses= {HomeController.class, ProdutoDAO.class})