Oi Fabio, tudo bem?
Isso tem haver com o padrão de localização do sistema e no caso do SpringMVC. Como a localização padrão é EN, ou seja, Estados Unidos, então o separador de casa decimal é o ponto "." e não a vírgula, como é nosso caso aqui no PT_BR.
Existem algumas formas de resolver isso, a forma padrão para todo o sistema de uma vez, seria criar um Binder
dentro de um ControllerAdvice
que serve como controller de configuração utilizado pelo Spring. Ficando assim:
@ControllerAdvice
public class GlobalBindingInitializer {
@InitBinder
public void initBigDecimalBinder(WebDataBinder binder) throws Exception {
DecimalFormat df = new DecimalFormat();
DecimalFormatSymbols dfs = new DecimalFormatSymbols();
dfs.setGroupingSeparator(',');
df.setDecimalFormatSymbols(dfs);
binder.registerCustomEditor(BigDecimal.class, new CustomNumberEditor(BigDecimal.class, df, true));
}
}
Veja se isso te ajuda em algo.