Spring后端使用@Pattern注解触发MethodArgumentNotValidException问题排查
问题排查:@Pattern注解引发的MethodArgumentNotValidException异常
异常原因很明确:
你的DadosEndereco中uf字段配置了@Pattern(regexp = "\\d{2}"),这个正则规则强制要求字段值必须是两位数字,但你传入的请求JSON里uf的值是"PR"(字母组合),完全不满足校验规则,因此触发了JSR-380参数校验失败,抛出MethodArgumentNotValidException。
解决方案分两种情况:
- 若需求确实要求
uf为两位数字:修正请求中的uf值为符合要求的数字格式(比如"01"); - 若实际需求是
uf为两位字母(比如巴西州缩写):修改@Pattern的正则表达式,比如匹配大写两位字母:
@NotBlank @Pattern(regexp = "[A-Z]{2}") String uf,
如果需要支持大小写不敏感,可改为@Pattern(regexp = "[a-zA-Z]{2}")。
内容的提问来源于stack exchange,提问作者Eduardo Hauer
相关产品推荐
相关产品推荐

