@Pattern,@NotBlank

张开发
2026/4/15 23:06:50 15 分钟阅读

分享文章

@Pattern,@NotBlank
1. NotBlank非空神器意思只能用于String。它要求字符串既不能为 null长度也必须大于 0且不能全是空格。对比NotNull: 只要不是null就算过。(空字符串) 能通过。NotEmpty: 不能为null且长度 0。 (全是空格) 能通过。NotBlank: 最严格。null、、 统统不准过。使用场景用户名、密码、地址等必填文本。2. Pattern正则大杀器意思验证字符串是否符合你定义的正则表达式。属性regexp传入正则表达式。使用场景手机号、邮箱、身份证号、邮编等有固定格式的字符串。3. 实战代码演示假设你要写一个用户注册的接口你的 DTO数据传输对象应该长这样Javaimport javax.validation.constraints.NotBlank; import javax.validation.constraints.Pattern; public class UserRegisterDTO { NotBlank(message 用户名不能为空) private String username; NotBlank(message 手机号不能为空) Pattern( regexp ^1[3-9]\\d{9}$, message 手机号格式不正确 ) private String phoneNumber; // 省略 getter/setter }关键点要想让这些注解生效你在 Controller 的方法参数前必须加上Valid或Validated注解JavaPostMapping(/register) public Result register(Validated RequestBody UserRegisterDTO dto) { // 如果校验失败Spring 会直接抛出异常或返回 400根本进不到这一行 return Result.success(); }

更多文章