【问题标题】:Spring validation request body as stringSpring 验证请求正文为字符串
【发布时间】:2020-07-29 23:11:10
【问题描述】:

我有一个请求主体为Stringobject 的端点,其中包含一个电话号码:

@PostMapping("/phone-number") 
public Response phoneNumberRequest(@RequestBody @Valid @Pattern(regexp="myRegexp") String phoneNumber) {
...
}

我只有一个请求参数phoneNumber,所以我不需要 JSON 对象。 我需要验证电话号码。但是当请求主体是简单的String 对象时,@Valid 注释不适用于@Pattern(regexp = "myRegexp")。所以我的问题是为什么?在这种情况下如何验证电话号码?

【问题讨论】:

  • json 中的请求正文是什么?可能是你应该创建一个请求正文类并使用@Valid 来验证在 requestbody 之前使用
  • 你需要使用@Valid注解,而就@Pattern而言,你可以使用@Pattern(regexp = "YOUR_REGEX")
  • 我只有一个请求参数phoneNumber,所以我不需要json对象。当请求主体是简单的 String 对象时,@Valid 注释不适用于 @Pattern(regexp = "YOUR_REGEX")。所以我的问题是为什么?在这种情况下如何验证电话号码?

标签: java spring validation spring-mvc endpoint


【解决方案1】:

我建议如下:

@PostMapping("{phone-number}")
public Response phoneNumberRequest(
  @PathVariable String phone-number) {

  Boolean valid = phone-number.matches("your-regex");
  ...

}

【讨论】:

    猜你喜欢
    • 2020-10-18
    • 1970-01-01
    • 2020-03-14
    • 2018-08-08
    • 1970-01-01
    • 1970-01-01
    • 2018-10-14
    • 1970-01-01
    • 2023-04-04
    相关资源
    最近更新 更多