代码之家  ›  专栏  ›  技术社区  ›  WesternGun

jsr303-validation-in-Spring-当字段只接受整数时如何拒绝数字字符串

  •  2
  • WesternGun  · 技术社区  · 5 年前

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

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

    例如,它应该是:

    {
        "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 仅适用于字符序列。

    0 回复  |  直到 5 年前