1. @NotNull
javax.validation.constraints.NotNull;
使用@NotNull注解, 则注解元素不能为null, 接收任何数据类型。
适用于基本数据类型(Integer、Long、Double等)。 使用在String类型时, 表示改元素不能为null, 但可以为empty(比如空字符串)
2. @NotBlank
javax.validation.constraints.NotBlank;
使用@NotBlank注解,则注解元素不能为null, 并且必须包含一个非空白字符(即非null, 并且trim()后size > 0),接收CharSequence
适用于String类型, 要求注解元素 非null && size > 0
3. @NotEmpty
javax.validation.constraints.NotEmpty;
使用@NotEmpty注解,则注解元素不能为null 或 empty, 接收CharSequence、Collection、Map、Array
适用于String、Collection、Map、Array, 要求注解元素非null && size > 0
4. 注解使用
定义一个用户新增方法, 校验指定参数
DTO
package com.donico.demo.domain.dto;
import java.util.List;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import lombok.Data;
import lombok.experimental.Accessors;
@Data
@Accessors(chain = true)
public class UserAddDto {
/**
* 用户名
*/
@NotBlank(message = "用户名不能为空")
private String username;
/**
* 密码
*/
@NotBlank(message = "密码不能为空")
private String password;
/**
* 昵称
*/
@NotBlank(message = "昵称不能为空")
private String nickname;
/**
* 手机号
*/
@NotBlank(message = "手机号不能为空")
private String mobile;
/**
* 状态: 1=启用,2=禁用
*/
@NotNull(message = "状态不能为空")
private Integer state;
/**
* 标签ids
*/
@NotEmpty(message = "标签不能为空")
private List<Long> labelIds;
/**
* 描述
*/
private String desc;
}
Controller
这些校验注解需要@Valid 或 @Validated 配合使用才会生效
import javax.validation.Valid;
/**
* 添加用户
*/
@PostMapping("/add")
public User addUser(@RequestBody() @Valid UserAddDto addDto) {
// todo
}
import org.springframework.validation.annotation.Validated;
/**
* 添加用户
*/
@PostMapping("/add")
public User addUser(@RequestBody() @Validated UserAddDto addDto) {
// todo
}