面试题:你们对于表单数据是怎么校验的?如果校验规则不满足了怎么办?
我们采用了springboot提供的JSR-303的校验规则,底层采用的是Hibernate Validator。@Validated开启校验,如果多个接口用到同一个实体类,我们会采用它的分组校验.
手写校验规则 或者 自定义校验注解。
属性:
@NotEmpty(message = "添加课程名称不能为空",groups={ValidationGroups.Inster.class})
@NotEmpty(message = "修改课程名称不能为空",groups={ValidationGroups.Update.class})
@ApiModelProperty(value = "课程名称", required = true)
private String name;
@NotEmpty(message = "适用人群不能为空")
@Size(message = "适用人群内容过少",min = 10)
@ApiModelProperty(value = "适用人群", required = true)
private String users;
接口调用:
@PostMapping("/course")
public CourseBaseInfoDto createCourseBase(@RequestBody @Validated(ValidationGroups.Inster.class) AddCourseDto addCourseDto){
Long companyId = 22L;
return courseBaseInfoService.createCourseBase(companyId,addCourseDto);
}
分组:
public class ValidationGroups {
public interface Inster{};
public interface Update{};
public interface Delete{};
}