我在弹簧控制器中使用验证器。如果需要@RequestParam没问题,我可以使用@NotBlank检查String。但是,如果@RequestParam是可选的,我不能将其与@NotBlank一起使用,因为此参数是可选的,有时可以为null。
如果String不为null,我想验证@NotBlank。有什么约束可以帮助我吗?

@RequestParam @NotBlank String name

工作完美。我的required=false有问题
如果客户端不发送可选的description参数,则验证失败。
@PatchMapping("/role/{id}")
public ResponseEntity<?> updateRole(HttpServletRequest request, @PathVariable @Positive Integer id,
                                   @RequestParam @NotBlank String name,
                                   @RequestParam(required = false) @NotBlank String description)

如果描述不是@NotBlank,我想验证null
`@RequestParam(required = false) @NotBlank String description`

如果我那样使用,我会得到“输入验证失败!”。

最佳答案

这不是验证@RequestParam的正确方法。您必须在代码中进行验证
如果为空,则为throw new IllegalArgumentException("{\"error\":\"The parameter is invalid\"}"

10-07 19:22
查看更多