注解参数校验

注解校验

https://cloud.iocoder.cn/validator/#_1-%E5%8F%82%E6%95%B0%E6%A0%A1%E9%AA%8C%E6%B3%A8%E8%A7%A3

手动校验

复制代码
@Resource
private Validator validator;
java 复制代码
import jakarta.validation.ConstraintViolation;
import jakarta.validation.Validator;

@RestController
@RequestMapping("/task")
public class TaskController {

    @Autowired
    private Validator validator; // Spring 会自动注入 Hibernate Validator

    @PostMapping("/importTaskExcel")
    public CommonResult<?> importTaskExcel(@RequestParam("file") MultipartFile file) throws Exception {
        if (!verifySuffix(file)) {
            throw new ServiceException("文件必须以xls、xlsx结尾");
        }

        // 1. 解析 Excel
        List<TaskImportExcelVO> list = ExcelUtils.read(file, true, TaskImportExcelVO.class);

        // 2. 手动逐条校验
        List<String> errorMessages = new ArrayList<>();
        for (int i = 0; i < list.size(); i++) {
            TaskImportExcelVO vo = list.get(i);
            Set<ConstraintViolation<TaskImportExcelVO>> violations = validator.validate(vo);
            if (!violations.isEmpty()) {
                for (ConstraintViolation<TaskImportExcelVO> violation : violations) {
                    // 收集错误,带上 Excel 行号更直观
                    errorMessages.add("第" + (i + 1) + "行: " + violation.getMessage());
                }
            }
        }

        // 3. 如果有错误,直接返回
        if (!errorMessages.isEmpty()) {
            return CommonResult.error("导入失败", errorMessages);
        }

        // 4. 正常导入
        return companyTaskService.importTaskExcel(list);
    }
}
相关推荐
美酒没故事°1 天前
Open WebUI安装指南。搭建自己的自托管 AI 平台
人工智能·windows·ai
一个欠登儿程序员1 天前
在国产服务器上通过 Docker 部署 Windows 虚拟机
服务器·windows·docker
爱宇阳1 天前
WSL2 隔离 Windows PATH 实战指南
windows·环境变量
ALex_zry1 天前
C++模板元编程实战技巧
网络·c++·windows
I疯子1 天前
2026-04-08 打卡第 5 天
开发语言·windows·python
一个人旅程~1 天前
旧笔记本电脑安装win10精简版LTSB&win10LTSC&linuxmint作为三系统的操作指导书(以DELL n4020为例)
linux·windows·经验分享·电脑
开开心心就好1 天前
支持自定义名单的实用随机抽签工具
windows·计算机视觉·计算机外设·excel·散列表·启发式算法·csdn开发云
dyj0951 天前
OpenClaw小龙虾本地部署【Windows系统 + 接入飞书】
windows·飞书
CresCent_Charles1 天前
(已解决)踩坑记录:Windows 11安装pointops编译时报错
windows
skywalk81631 天前
Windows下安装编译安装Whisper-CPP:一个语音实现框架集和高性能推理模型
人工智能·windows·whisper