Spring不验证JSON请求

quhf5bfb  于 2023-01-22  发布在  Spring
关注(0)|答案(2)|浏览(111)

当我发送请求时:

"Person": {
   "name": 5
 }

请求应该失败(错误请求),因为5不是字符串。Person{name='5'}.
同样,当我发送null时也没有错误。
我有这样的注解:

@JsonProperty("name")
@Valid
@NotBlank
private String name;

控制器:

public void register(@Valid @RequestBody Person p) {
    ...
}

我怎样才能使它验证名称,以便只接受字符串?

cbeh67ev

cbeh67ev1#

添加BindingResult参数。

public void register(@Valid @RequestBody Person p, BindingResult result) {
    if (result.hasErrors()) {
        // show error message
    }
}
ldioqlga

ldioqlga2#

我怎样才能使它验证名称,以便只接受字符串?
使用@Pattern注解。

@JsonProperty("name")
@Valid
@NotBlank
@Pattern(regexp="^[A-Za-z]*$", message = "Name should contains alphabetic values only")
private String name;

有关更多详细信息,请查看此link和此regex。

相关问题