如何解决@NotBlank不生效的问题
解决@NotBlank不生效
在项目开发中,发现一个类中包含有另外一个类,这种包含关系的类上的@NotBlank校验不生效,后来发现需要在内部的类的域上加上@Valid注解,如下:
/** * 标签体系ID */ @NotBlank(message = "00000002") @Length(max = 20, message = "00000005") private String systemId; /** * 条件模板id */ private String templateId; /** * 条件模板代码 */ private String templateCode; /** * 条件模板名称 */ @NotBlank(message = "00001001") @Length(max = 20, message = "00001002") private String templateName; /** * 条件表达式 */ @NotBlank(message = "00001003") @Length(max = 200, message = "00001004") private String templateConditionExpr; /** * 排序 */ private Integer sort; /** * 条件模板字段数据 */ @Valid @NotEmpty(message = "00001005") private List<PotentialConColParam> conTemplatesCols;
/** * 标签代码 */ @NotBlank(message = "00001006") @Length(max = 64, message = "00001007") private String labelCode; /** * 条件名称 */ @NotBlank(message = "00001008") @Length(max = 20, message = "00001009") private String conditionName; /** * 操作符 */ @NotBlank(message = "00001010") @Length(max = 20, message = "00001011") private String operation; /** * 条件赋值 */ @NotBlank(message = "00001012") @Length(max = 20, message = "00001013") private String conditionValue;
@NotBlank @NotEmpty不生效,以及对象嵌套问题
问题1:
最近做一个新项目,写新接口时发现@NotBlank @NotEmpty不生效,@NotNull则生效,令人费解。通过搜索资料以及对项目依赖一步步排除发现项目中引入的jar包有问题,见红色标识出来的
删除以上3个jar,新增org.hibernate后问题解决
用法:
step1、Controller层接口入参处加@Validated注解(org.springframework.validation.annotation包的)
step2、入参对象的属性上加@NotBlank 或@NotEmpty 或 @NotNull --均来自于javax.validation.constraints包下, 三者区别可百度
问题2:
循环嵌套问题,入参对象bean中 属性也为javabean对象,也希望子对象中的属性能够被校验
用法: 在子对象属性上面加@Valid 注解即可
以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。
赞 (0)