关于JSR
JSR是Java Specification Requests的缩写,意思是Java 规范提案。是指向JCP(Java Community Process)提出新增一个标准化技术规范的正式请求。任何人都可以提交JSR,以向Java平台增添新的API和服务。JSR已成为Java界的一个重要标准。
关于 JSR-303
JSR-303 是JAVA EE 6 中的一项子规范,叫做Bean Validation,Hibernate Validator 是 Bean Validation 的参考实现 . Hibernate Validator 提供了 JSR 303 规范中所有内置 constraint 的实现,除此之外还有一些附加的 constraint。
Hibernate 对其实现
Hibernate Validator 是 Bean Validation 的参考实现 . Hibernate Validator 提供了 JSR 303 规范中所有内置 constraint 的实现,除此之外还有一些附加的 constraint。
简单介绍
补充
Hibernate 中填充一部分
代码实现
依赖
<!-- https://mvnrepository.com/artifact/org.hibernate.validator/hibernate-validator -->
<dependency>
<groupId>org.hibernate.validator</groupId>
<artifactId>hibernate-validator</artifactId>
<version>6.0.16.Final</version>
</dependency>
(1)给要校验的javaBean上标注校验注解
@ToString
@Getter
@Setter
public class UmsAdminParam {
//规定长度
@Length(min = 6, max = 19, message = "用户名长度是6-18位")
@ApiModelProperty(value = "用户名", required = true)
private String username;
@ApiModelProperty(value = "密码", required = true)
private String password;
//不能是空的
@NotEmpty
@ApiModelProperty(value = "用户头像")
private String icon;
@Email(message = "邮箱格式错误")
@ApiModelProperty(value = "邮箱")
private String email;
@NotNull
@ApiModelProperty(value = "用户昵称")
private String nickName;
@ApiModelProperty(value = "备注")
private String note;
}
(2)告诉spring这个数据需要校验@Valid
(3)感知校验成功/失败
public Stringregister(@Valid @RequestBody UmsAdminParam user,BindingResult result) {
//得到所有错误信息计数
int errorCount = result.getErrorCount();
//错误数大于0
if (errorCount>0){
//得到所有错误
List<FieldError> fieldErrors = result.getFieldErrors();
//迭代错误
fieldErrors.forEach((fieldError)->{
//错误信息
String field = fieldError.getField();
log.debug("属性:{},传来的值是:{},出错的提示消息:{}",
field,fieldError.getRejectedValue(),fieldError.getDefaultMessage());
});
return fieldError.getRejectedValue()+"出错:"+fieldError.getDefaultMessage();
}else{
return "登录成功";
}
}
版权声明:本文为weixin_44440642原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。