@Email注解在springboot应用程序中不起作用

@Email annotation not working in springboot application

提问人:Nithya 提问时间:10/28/2023 最后编辑:Nithya 更新时间:10/29/2023 访问量:35

问:

我有一个 getMapping 控制器,它接受 emailId 和 Set 作为输入。 我想对非空/空白值和电子邮件 ID 验证进行验证检查,下面是示例代码。@Email验证不会因无效输入而引发任何错误。此外,如果我通过“ ” @NotEmpty或@NotNull或@NotBlank则不会抛出错误。

此外@Pattern不会应用于“设置”中的所有值,并且不会显示自定义错误消息

@RestController
@RequestMapping("/test")
@Validated
public class TestController {
    
    @GetMapping("/test")
    public ReturnType method(@Email @RequestParam("email") String email, @Pattern(regexp = "", message ="")Set<String> values) 
    {
     //code..
    }
java 验证 spring-annotations spring-validation

评论

0赞 Chaosfire 10/28/2023
如有疑问,请查阅文档 - 电子邮件模式。在那里,您将看到电子邮件的默认正则表达式与任何字符串匹配,s 也有效。另一方面,模式适用于 s(字符串等),它不适用于 .nullCharSequenceSet

答:

0赞 G10 10/29/2023 #1

当 Spring Boot 找到用 @Valid 注释的参数时,它会自动引导默认的 JSR 380 实现 — Hibernate Validator — 并验证该参数

https://www.baeldung.com/spring-boot-bean-validation#:~:text=Of%20course%2C%20the%20most%20relevant,Validator%20%E2%80%94%20and%20validates%20the%20argument