1.前景
Vo實(shí)體添加標(biāo)簽@NotBlank或@Pattern靈活配置,靈活校驗(yàn)。通用處理代碼,減少大量校驗(yàn)代碼的書寫,提高開發(fā)效率。
2.代碼使用
學(xué)生實(shí)體:
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;
/**
* 如果是空,則不校驗(yàn),如果不為空,則校驗(yàn)
*/
@Pattern(regexp="^[0-9]{4}-[0-9]{2}-[0-9]{2}$",message="出生日期格式不正確")
private String birthday;
@NotBlank(message="學(xué)校不能為空")
private String school;
@NotNull
@Money //自定義注解,自定義校驗(yàn)方式。
//@Pattern(regexp = "^\\d+\\.\\d{1,2}?$", message = "金額格式不正確") //說明:@Pattern只能用在String上,否則報(bào)異常:No validator could be found for type: java.lang.Double
private Double money;
@Valid //親測:如果不在關(guān)聯(lián)屬性上設(shè)置@Valid標(biāo)簽,便不會(huì)校驗(yàn)關(guān)聯(lián)實(shí)體的屬性值。
private List<ParentVo> parents; //關(guān)聯(lián)實(shí)體校驗(yà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;
}
}
具體代碼參見:
代碼結(jié)構(gòu):Java+Hibernate利用標(biāo)簽校驗(yàn)Vo:
1>簡單校驗(yàn);@NotBlank、@NotNull、@Pattern使用
2>自定義注解和校驗(yàn)規(guī)則;@Money使用
3>關(guān)聯(lián)實(shí)體屬性校驗(yàn)。@Valid使用
3.注意點(diǎn):
1.Integer、Double數(shù)據(jù)類型,即非String字符串類型,只能添加@NotNull,否則會(huì)報(bào)javax.validator not found for Integer異常。
2.關(guān)聯(lián)實(shí)體校驗(yàn),需要在關(guān)聯(lián)實(shí)體屬性上添加@Valid標(biāo)簽。關(guān)聯(lián)實(shí)體如果是一個(gè)List,也可以正常運(yùn)行。