Форма Spring и Thymeleaf с типом ввода = "число", игнорирующим десятичный разделитель при преобразовании в BigDecimal - PullRequest
0 голосов
/ 11 марта 2020

В html форме с input type="number", которая представляет десятичные числа, десятичный разделитель (независимо от того, использую я запятую или точку) игнорируется. Чтобы получить правильное значение, мне нужно изменить поле ввода на type="text".

Пример: когда я отправляю значение «0,01» в форме, оно преобразуется в «1».

HTML форма:

<form method="post" class="form-vertical  js-form-loading" th:action="@{/balanco/salvar}" th:object="${medicaoUsina}">
...
<input id="vlAberturaComporta" type="number" min="0" max="11" step="0.01" class="form-control" th:field="*{vlAberturaComporta}" />

Пружинный контроллер:

@PostMapping("/salvar")
public ModelAndView salvar(@Valid @ModelAttribute("medicaoUsina") MedicaoUsinaDTO medicaoUsina, BindingResult bindingResult) throws SistemaException {
...

Java DTO MedicaoUsinaDTO:

public class MedicaoUsinaDTO {
    private Long idMedicao;
    private Integer idUsina;
    private BigDecimal vlGeracaoUG1;
    private BigDecimal vlGeracaoUG2;
    private BigDecimal vlGeracaoUG3;
    private BigDecimal vlAberturaComporta;
    ...
}

Использование Spring 4.3.23 и Thymeleaf 3.0.2 .

Я мог бы использовать input type="text", но я бы предпочел использовать type="number", чтобы я мог использовать функции проверки полей HTML5.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...