1.前景
Vo實體添加標簽@NotBlank或@Pattern靈活配置二跋,靈活校驗。通用處理代碼揽乱,減少大量校驗代碼的書寫鞋吉,提高開發(fā)效率。
2.代碼使用
學生實體:
package jdk.ValidateVo;
import jdk.ValidateVo.customAnnotation.Money;
import org.hibernate.validator.constraints.NotBlank;
import javax.validation.Valid;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Pattern;
import java.util.List;
/**
* Created by JadenOliver on 2018/5/21.
*/
public class StudentInfo {
@NotBlank(message="用戶名不能為空")
private String userName;
@NotBlank(message="年齡不能為空")
@Pattern(regexp="^[0-9]{1,2}$",message="年齡是整數(shù)")
private String age;
/**
* 如果是空蒋荚,則不校驗,如果不為空,則校驗
*/
@Pattern(regexp="^[0-9]{4}-[0-9]{2}-[0-9]{2}$",message="出生日期格式不正確")
private String birthday;
@NotBlank(message="學校不能為空")
private String school;
@NotNull
@Money //自定義注解栗精,自定義校驗方式。
//@Pattern(regexp = "^\\d+\\.\\d{1,2}?$", message = "金額格式不正確") //說明:@Pattern只能用在String上瞻鹏,否則報異常:No validator could be found for type: java.lang.Double
private Double money;
@Valid //親測:如果不在關聯(lián)屬性上設置@Valid標簽悲立,便不會校驗關聯(lián)實體的屬性值。
private List<ParentVo> parents; //關聯(lián)實體校驗
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
public String getBirthday() {
return birthday;
}
public void setBirthday(String birthday) {
this.birthday = birthday;
}
public String getSchool() {
return school;
}
public void setSchool(String school) {
this.school = school;
}
public Double getMoney() {
return money;
}
public void setMoney(Double money) {
this.money = money;
}
public List<ParentVo> getParents() {
return parents;
}
public void setParents(List<ParentVo> parents) {
this.parents = parents;
}
}
具體代碼參見:
代碼結構:Java+Hibernate利用標簽校驗Vo:
1>簡單校驗新博;@NotBlank薪夕、@NotNull、@Pattern使用
2>自定義注解和校驗規(guī)則赫悄;@Money使用
3>關聯(lián)實體屬性校驗原献。@Valid使用
3.注意點:
1.Integer、Double數(shù)據(jù)類型埂淮,即非String字符串類型姑隅,只能添加@NotNull,否則會報javax.validator not found for Integer異常倔撞。
2.關聯(lián)實體校驗讲仰,需要在關聯(lián)實體屬性上添加@Valid標簽。關聯(lián)實體如果是一個List痪蝇,也可以正常運行鄙陡。