首页 > 解决方案 > Spring中的JSR 303验证-当字段应该只接受整数时如何拒绝数字字符串

问题描述

当我在请求正文中验证 JSON 格式实体时,一个数字字段作为可解析为 Integer 的数字字符串进入,被接受为有效。但我想检查它是否只包含数字并拒绝任何字符串,无论是否可解析。

但我认为 JSR 303 验证不区分数字或字符串中的数字。

例如,它应该是:

{
    "quantity": 1,
    ...
}

但是当它是:

{
    "quantity": "1",
    ...
}

未检测到错误。

验证类似于:

@NotNull(message = "order item quantity is required")
@Digits(integer = Integer.MAX_VALUE, fraction = 0) // only integer
@PositiveOrZero
@ApiModelProperty(value = "Order Item quantity", required = true) // for Swagger UI
@JsonProperty("quantity")
private Integer quantity;

请注意,@Pattern仅适用于 char 序列。

标签: javajsonbean-validation

解决方案


推荐阅读