概述
导入的时候先根据注解进行处理
ExcelImportResult<TaskInfoNineDO> result = ExcelImportUtil.importExcelMore(file.getInputStream(), TaskInfoNineDO.class,
importParams);
List<TaskInfoNineDO> successList = result.getList();//成功
List<TaskInfoNineDO> failList = result.getFailList();//失败
List<TaskInfoNineDO> list = new ArrayList<TaskInfoNineDO>();//返回
/**
* 校验注解
*/
if(!failList.isEmpty()){
//非空原因
for(TaskInfoNineDO f:failList){
BeanValidator.validate(f);
}
}
log.info("是否存在验证未通过的数据:" + result.isVerfiyFail());
log.info("验证通过的数量:" + successList.size());
log.info("验证未通过的数量:" + failList.size());
然后是BeanValidator对象验证器
/**
* @author 作者 xiaoxiao
*
*/
/** 对象验证器
* @author think
*
*/
public class BeanValidator {
public static<T> void validate (T object) throws ValidationException{
Validator validator = Validation.buildDefaultValidatorFactory().getValidator();//获得验证器
Set<ConstraintViolation<T>> constraintViolations = validator.validate(object); //执行验证
if(CollectionUtils.isEmpty(constraintViolations)){
return;
}
throw new ValidationException(convertErrorMsg(constraintViolations));
}
/**
* 注释(转换异常信息)
* @param constraintViolations
* @return
* String
* @author xiaoxiao
* @param <T>
*/
private static <T> String convertErrorMsg(Set<ConstraintViolation<T>> set) {
// TODO Auto-generated method stub
Map<String,StringBuffer> errorMap = new HashMap<>();
String property;
for(ConstraintViolation<T> cv:set){
//这里循环获取错误信息,可以自定义
property = cv.getPropertyPath().toString();
if(errorMap.get(property)!=null){
errorMap.get(property).append(","+cv.getMessage());
}else{
StringBuffer sbBuffer = new StringBuffer();
sbBuffer.append(cv.getMessage());
errorMap.put(property, sbBuffer);
}
}
return errorMap.toString();
}
校验自定义注解值
```bash
@Excel(name = "事业部",orderNum = "1",width = 15)
@NotNull(message = "部门不能为空")
private String deptName;
异常在此抛出
log.error(e.getMessage(), e);
map.put("msg", e.getMessage());
map.put("code", 500);
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
如果注解校验能通过的话最后在定义
StringBuffer errorMessage = new StringBuffer();//错误消息
errorMessage.append()错误消息返回到前端导出错误数据
最后
以上就是痴情溪流为你收集整理的Easypoi 导入校验处理的全部内容,希望文章能够帮你解决Easypoi 导入校验处理所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复