【问题标题】:JSR Validation @Pattern allowing null valuesJSR Validation @Pattern 允许空值
【发布时间】:2020-10-07 06:48:02
【问题描述】:

当我使用 @Pattern 注释字段时

@Pattern(regexp="someRegexp")
public String name;

如果 JSON 包含此字段,其值为 null,那么我预计此正则表达式会失败并因此无效。

如果 JSON 不包含该字段,则验证通过即可。

如何做到这一点?

【问题讨论】:

    标签: java spring-boot bean-validation hibernate-validator jackson-databind


    【解决方案1】:

    对于字符串,我通常使用@NotBlank 来表示非空字符串,但我不确定 100% 它不允许空条目,但在这种情况下,使用 @NotNull 注释。

    编辑:我正在寻找一个示例,我从一个旧项目中得到了这个:

    @NotNull
    @NotBlank
    @Pattern(regexp = "somePattern")
    public String getEmail() {
        return this.email;
    }
    
    

    如您所见,我使用 NotNull 和 NotBlank,即使我有一个模式。

    【讨论】:

    • 不,@NotBlank 只检查修剪后的长度是否 > 0,如果字符串不为空。 baeldung.com/java-bean-validation-not-null-empty-blank 。我的要求是,如果该字段存在于 JSON 中且值为 null,则 JSR 验证应该失败。如果该字段不存在,则它应该通过。该值(如果存在)必须向正则表达式确认。
    • 你在哪里检查字符串是否为空?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-11-12
    • 1970-01-01
    • 2016-11-24
    • 2017-07-11
    • 2012-03-30
    • 1970-01-01
    • 2011-07-14
    相关资源
    最近更新 更多