JSR 验证@Pattern 允许空值

问题描述 投票:0回答:3

当我用 @Pattern 注释字段时

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

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

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

如何实现这一目标?

java spring-boot bean-validation hibernate-validator jackson-databind
3个回答
0
投票

我知道这是一个 3 年前的问题,但对于那些像我一样偶然发现这个问题的人来说,我能想到的唯一选择是,将 @NotNull 与 @Pattern 结合使用。使用模式来处理空字符串。


0
投票

工作了:

@Nullable
@Pattern(regexp = "...",
message = "...")
private String smth;

-1
投票

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

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.