1
resposta

Vírgula no lugar de ponto

Olá a todos!

Como eu conseguiria fazer a aplicação aceitar, no campo de valor, a vírgula ("10,50") em vez do ponto ("10.50")?

1 resposta

Olá, Fabiano!

Para aceitar a vírgula no lugar do ponto no campo de valor da sua aplicação, você pode utilizar a anotação @InitBinder em um controller e configurar um NumberFormat personalizado.

Por exemplo:

@Controller
public class SeuController {

    @InitBinder
    public void initBinder(WebDataBinder binder) {
        DecimalFormat df = new DecimalFormat("#,##0.00");
        DecimalFormatSymbols symbols = new DecimalFormatSymbols();
        symbols.setDecimalSeparator(',');
        symbols.setGroupingSeparator('.');
        df.setDecimalFormatSymbols(symbols);
        CustomNumberEditor editor = new CustomNumberEditor(Double.class, df, true);
        binder.registerCustomEditor(Double.class, editor);
    }

    // Restante do código do controller
}

Dessa forma, o Spring irá utilizar o NumberFormat personalizado para converter a string do campo de valor em um número double.

Espero ter ajudado e bons estudos!