Validation校验实体类并返回错误信息

来源:互联网 发布:造价大师软件 安徽 编辑:程序博客网 时间:2024/04/30 18:11

@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();
}
0 0
原创粉丝点击