1. spring已经包含了 hibernate-validator
2.配置校验分组
/**
* Validated Interface校验分组
*/
public interface VI {
interface Add {}
interface Edit {}
}
3.控制层配置
新增时候
public AjaxResult add(@RequestBody @Validated TTest tTest)
修改时候
public AjaxResult edit(@RequestBody @Validated({VI.Edit.class, Default.class})
4.实体类配置
@NotEmpty(message = "修改时候ID不为空",groups = {VI.Edit.class})
@NotNull(message = "整数型不为空")
5.校验顺序参考
@GroupSequence({VerifySeq.N0.class, VerifySeq.N1.class, VerifySeq.N2.class,VerifySeq.N3.class,
VerifySeq.N4.class,VerifySeq.N5.class,VerifySeq.N6.class, VerifySeq.N7.class,
VerifySeq.N8.class, VerifySeq.N9.class, Default.class})
public interface VerifySeq {
interface N0 {
}
interface N1 {
}
interface N2 {
}
interface N3 {
}
interface N4 {
}
interface N5 {
}
interface N6 {
}
interface N7{
}
interface N8 {
}
interface N9 {
}
}
@Data
public class SecurityQuestionVfyDTO {
@NotBlank(message = "###err.param.ada.isNotEmpty###", groups = VerifySeq.N1.class)
@Pattern(regexp = ADA_FORMAT_ALLOW_BLANK, message = "###error.param.format.ada###", groups = VerifySeq.N2.class)
@ApiModelProperty(value = "号码", required = true, example = "63304")
private String ada;
@NotBlank(message = "###err.param.name.isNotEmpty###", groups = VerifySeq.N5.class)
@ApiModelProperty(value = "姓名", required = true, example = "张三")
private String name;
@NotBlank(message = "###err.param.qid.isNotEmpty###", groups = VerifySeq.N3.class)
@ApiModelProperty(value = "问题ID", required = true, example = "1")
private String qid;
@Length(max=60, message = "###err.param.answer.tooLong###")
@NotBlank(message = "###err.param.answer.isNotEmpty###", groups = VerifySeq.N4.class)
@ApiModelProperty(value = "答案", required = true, example = "第一中学")
private String answer;
}
@Validated(VerifySeq.class)
6.官网API
https://docs.jboss.org/hibernate/stable/validator/reference/en-US/html_single/#chapter-groups