package com.jhsec.iam.core.modules.excel.service;
import org.hibernate.validator.constraints.Length;
import javax.validation.ConstraintViolation;
import javax.validation.Validation;
import javax.validation.Validator;
import javax.validation.ValidatorFactory;
import javax.validation.constraints.NotNull;
import java.util.Set;
/**
* @author 16903
* @date 2023-07-30 22:06
*/
public class Main {
public static void main(String[] args) {
// 创建验证器工厂
ValidatorFactory factory = Validation.buildDefaultValidatorFactory();
// 获取验证器实例
Validator validator = factory.getValidator();
// 创建待验证的对象
Object obj = new MyObject(null);
// 执行验证
Set<ConstraintViolation<Object>> validate = validator.validate(obj);
// 处理验证结果
if (validate.isEmpty()) {
System.out.println("对象验证通过");
} else {
System.out.println("对象验证不通过,错误信息如下:");
for (ConstraintViolation<Object> violation : validate) {
System.out.println(violation.getPropertyPath() + ": " + violation.getMessage());
}
}
}
}
class MyObject {
@NotNull(message = "属性不能为空")
@Length(max = 1,message = "长度超过1了")
@Pattern(regexp = "^\\s*|[0-9A-Za-z]*$", message = "编号为数字和字母组合")
private String property;
public MyObject(String property) {
this.property = property;
}
public String getProperty() {
return property;
}
public void setProperty(String property) {
this.property = property;
}
}
@NotNull
注解来标记MyObject
类的property
属性不能为空。通过Validation.buildDefaultValidatorFactory()
创建验证器工厂,然后使用factory.getValidator()
获取验证器实例。然后,我们创建了一个MyObject
实例,并将其传递给validator.validate()
方法进行验证。验证结果存储在Set<ConstraintViolation<Object>>
中,我们可以根据需要进行处理。文章来源:https://www.toymoban.com/news/detail-619047.html
以上代码将根据MyObject
定义的约束进行验证,并打印出验证结果。如果验证通过,将会输出"对象验证通过",否则将输出相应的错误信息。请根据实际需求进行相应的修改。文章来源地址https://www.toymoban.com/news/detail-619047.html
到了这里,关于@Pattern、@NotNUll、@Length等校验注解的使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!