【问题标题】:Post request with json string as body and add validation to it使用 json 字符串作为正文发布请求并为其添加验证
【发布时间】:2023-04-04 16:29:01
【问题描述】:

我正在尝试将字符串输入添加到 Spring Boot 应用程序。内容类型是 json,我正在尝试向它添加验证。

@RestController
@RequestMapping(value = "/entries")
public class SampleController {

    @RequestMapping(method = RequestMethod.DELETE)
    @ResponseStatus(value = HttpStatus.NO_CONTENT)
    public void delete(@RequestBody @NotBlank(message = "{field.required}") String username) throws Exception {
        //some logic
    }

}

由于某些原因,@Notblank 注释不起作用。

这样做是否正确。

【问题讨论】:

标签: json spring spring-boot


【解决方案1】:

一种方法是创建一个模型/dto 类并在此类中的字符串上定义您的@NotBlank。然后只需像这样更改您的控制器代码:

    @RequestMapping(method = RequestMethod.DELETE)
    @ResponseStatus(value = HttpStatus.NO_CONTENT)
    public void delete(@RequestBody @Valid MyClass myClass) throws Exception {
        ...
    }

如需更多见解,请关注here

【讨论】:

    【解决方案2】:

    您不能对方法参数使用这些验证。 如果要验证,则需要将参数绑定到对象上。然后,您只需要添加 @Valid 注释。 看到这个example

    【讨论】:

      猜你喜欢
      • 2020-07-29
      • 2018-09-11
      • 2018-10-14
      • 1970-01-01
      • 2016-03-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-19
      相关资源
      最近更新 更多