You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Thymeleaf HTML中使用th:field时以小数点替代逗号

Thymeleaf th:field 小数分隔符调整解决方案

问题原因

Thymeleaf默认会继承服务端的区域配置(Locale)渲染数字格式,当区域设置为使用逗号作为小数分隔符的地区(如欧盟多数国家)时,小数就会显示为125,00的格式。

解决方案(保留th:field属性)

方案1:实体类字段加格式注解(最推荐,无需修改HTML代码)

在对应表单实体类的productCost字段上添加@NumberFormat注解,明确指定数字格式:

import java.math.BigDecimal;
import org.springframework.format.annotation.NumberFormat;

public class ProductForm {
    // pattern属性明确小数分隔符为点,固定保留两位小数
    @NumberFormat(pattern = "#.00")
    private BigDecimal productCost;

    // 原有getter、setter保持不变
}

你的原有HTML代码不需要做任何修改,直接保留th:field="*{productCost}"即可,渲染时会自动输出125.00格式的内容,同时表单提交时也能正常完成数据绑定。

方案2:全局配置区域格式

如果希望全站所有数字都使用点作为小数分隔符,可以在SpringBoot配置文件application.properties中添加全局配置:

# 固定区域为美国英语,默认小数分隔符为点
spring.mvc.locale=en_US
# 统一数字格式保留两位小数
spring.mvc.format.number=#.00
spring.thymeleaf.encoding=UTF-8

该配置生效后所有数字字段默认都会用点作为小数分隔符,不需要单独修改字段配置。

注意事项

如果表单提交时出现数字格式解析错误,需要确认后端的参数解析器已适配#.00格式的数字,SpringBoot默认会自动识别@NumberFormat注解的配置完成解析,无需额外配置。

内容的提问来源于stack exchange,提问作者Sercan Noyan Germiyanoğlu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 08:39:00