繁体   English   中英

转换为 BigDecimal 时,输入类型 =“数字”的 Spring 和 Thymeleaf 形式忽略小数点分隔符

[英]Spring and Thymeleaf form with input type=“number” ignoring decimal separator when converting to BigDecimal

input type="number"提交十进制数的 html 表单上,小数点分隔符(无论我使用逗号还是句点)都被忽略了。 要获得正确的值,我需要将输入字段更改为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 字段验证器功能。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM