@AssertTrue //用于boolean字段,该字段只能为true
@AssertFalse //该字段的值只能为false
@CreditCardNumber //对信用卡号进行一个大致的验证
@DecimalMax //只能小于或等于该值
@DecimalMin //只能大于或等于该值
@Digits (integer= 2 ,fraction= 20 ) //检查是否是一种数字的整数、分数,小数位数的数字。
@Email //检查是否是一个有效的email地址
@Future //检查该字段的日期是否是属于将来的日期
@Length (min=,max=) //检查所属的字段的长度是否在min和max之间,只能用于字符串
@Max //该字段的值只能小于或等于该值
@Min //该字段的值只能大于或等于该值
@NotNull //不能为null
@NotBlank //不能为空,检查时会将空格忽略
@NotEmpty //不能为空,这里的空是指空字符串
@Null //检查该字段为空
@Past //检查该字段的日期是在过去
@Size (min=, max=) //检查该字段的size是否在min和max之间,可以是字符串、数组、集合、Map等
@URL (protocol=,host,port) //检查是否是一个有效的URL,如果提供了protocol,host等,则该URL还需满足提供的条件
@Valid //该注解只要用于字段为一个包含其他对象的集合或map或数组的字段,或该字段直接为一个其他对象的引用,
public class StudentBaseDTO implements Serializable{
private Integer id ; //主键id,自增
private Long optid;
private String state;
private String account;// 账号
private String schoolNo; //学校编码(学校编码表)
@Excel(name="学籍号")
private String studentCode; //学籍号
@Excel(name="学号")
private String studentNo; //学号,学号+学校编码不能重复
@Excel(name="年级")
@NotEmpty(message="年级不能为空")
private String gradeName; //年级
@Excel(name="班级")
private String className; //班级
@Excel(name="姓名")
@NotEmpty(message="姓名不能为空")
private String name; //姓名
@Excel(name="性别")
@NotEmpty(message="性别不能为空")
private String sex; //性别
@Excel(name="出生日期")
@NotEmpty(message="出生日期不能为空")
@Pattern(regexp="((?:19|20)\\d\\d)-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])",message="出生日期格式错误")
private String birthday; //出生日期
@Excel(name="出生地")
@NotEmpty(message="出生地不能为空")
private String birthplace; //出生地
@Excel(name="籍贯")
@NotEmpty(message="籍贯不能为空")
private String hometown; //籍贯:(字典)省市区,如湖南省长沙市岳麓区等,按国标来设计
private String province;
private String city;
private String area;//区
@Excel(name="民族")
@NotEmpty(message="民族不能为空")
private String nation; //民族:(字典)汉族、满族、壮族、傣族等,按国标设计。
@Excel(name="国籍/地区")
@NotEmpty(message="国家/地区不能为空")
private String nationality; //国籍/地区
@Excel(name="证件类型")
@NotEmpty(message="证件类型不能为空")
private String typeId; //证件类型:居民身份证、香港特区护照/身份证、澳门特区护照/身份证、台湾居民来往大陆通行证、护照、境外永久居住证、其他
@Excel(name="证件号码")
@NotEmpty(message="证件号码不能为空")
@Pattern(regexp="[1-9]\\d{5}[1-9]\\d{3}((0\\d)|(1[0-2]))(([0|1|2]\\d)|3[0-1])\\d{3}([0-9]|X)",message="证件号码格式错误")
private String idNumber; //证件号码
}
/**
* <b>方法描述:</b>校验对象数据内容<br/>* <b>参数描述:</b><br/>
@param entity 实体对象
@param idx 遍历记录数
@return<br/>
* @return String<br/>
*/
public <T> String validationEntity(T entity,int idx){
//错误信息
StringBuffer result = new StringBuffer();
//校验
ValidatorFactory factory = Validation.buildDefaultValidatorFactory();
Validator validator = factory.getValidator();
Set<ConstraintViolation<T>> constraintViolations = validator.validate(entity);
if(constraintViolations!=null && constraintViolations.size()>0){
result.append("第"+idx+"行:<br/>");
for (ConstraintViolation<T> constraintViolation : constraintViolations) {
result.append(constraintViolation.getMessage() + "<br/>");
}
}
idx++;
return result.toString();
}