使用@javax.validation.constraints.digits检查bigdecimal在精度之后是否只有2位数字

使用@javax.validation.constraints.digits检查bigdecimal在精度之后是否只有2位数字,java,annotations,bigdecimal,Java,Annotations,Bigdecimal,我有一节以下的课 Class Item { private BigDecimal amount; .... } 如何验证精度后仅应包含两位数字的金额。 i、 e 2.19是正确的 及 2.292不正确 使用注释@javax.validation.constraints.Digits 以及如何为此显示自定义错误消息 谢谢:)尝试对@数字设置限制: @Digits(integer = 6, fraction = 2) public String getAmount() { r

我有一节以下的课

Class Item {

   private BigDecimal amount;

   ....
}
如何验证精度后仅应包含两位数字的金额。 i、 e

2.19是正确的

2.292不正确

使用注释
@javax.validation.constraints.Digits
以及如何为此显示自定义错误消息


谢谢:)

尝试对
@数字设置限制:

@Digits(integer = 6, fraction = 2)
public String getAmount() {
   return amount;
}

项目
类的
金额
字段进行注释,如下所示

class Item {

   @Digits(integer = 6, fraction = 2, message = "{javax.validation.constraints.Digits.message}")
   private BigDecimal amount;
}
在上面的类中,
整数
分数
是必需的,消息是
@数字
的可选参数,我们可以在那里配置自定义错误消息

现在,我们在源目录中创建一个名为ValidationMessages.properties的属性文件。它看起来会像什么

javax.validation.constraints.Digits.message = "custom error message will be here"

为什么?为什么不使用非负值调用
setScale()
,并依赖于?谢谢您的回答。我只是想知道,我如何才能对此抛出异常?您希望这里出现什么样的异常?您可以做的是添加@NotNull作为约束,这样该方法就不会返回null…只想抛出异常消息,比如超过2位数的aftre精度不允许让用户知道错误。这里有可能吗?@PrashantShilimkar我真的不知道您会怎么做,您可以创建自己的异常,检查是否有两个以上的小数并引发异常。当我使用integer=14和fraction=4并尝试使用这个数字50000000000000.11111时,验证不起作用,知道为什么吗?当我使用integer=14和fraction=4,并且我尝试使用50000000000000.11111这个数字时,没有进行验证,知道为什么吗???@Eragonz91别忘了向请求主体对象添加
@Valid
注释。