我在弹簧控制器中使用验证器。如果需要@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\"}"