首页 > 解决方案 > @Digits 注释中的自定义错误消息

问题描述

我正在尝试在BigDecimalHibernate 验证 API 的帮助下验证一个字段 - 使用@Digits注释

@Digits(integer = 12, fraction = 2, 
        message = "numeric value out of bounds (min 0.01, max 999999999999.99)")
private BigDecimal amount = null;

当我传递金额值 123.123 时,我收到的错误消息是

'Classname.amount' 数值超出范围(最小值 0.01,最大值 999999999999.99)

但问题不是无效范围,而是格式。我们只允许 2 个小数。
我想要两条消息,一条用于无效范围,第二条用于无效分数。

是否有可能有两个不同的消息?

我尝试使用消息表达式进行插值,但它的选项有点有限

标签: javaannotationsmessagedigits

解决方案


你可以试试

@DecimalMin( value = "0.01", message ="too small")
@DecimalMax( value = "99999999999", message ="too big")
@Digits( integer=12, fraction=2, message = "bad format")
private BigDecimal amount = null;

推荐阅读