gpt4 book ai didi

java - 如何在@InitBinder 验证之前执行代码

转载 作者:行者123 更新时间:2023-11-30 10:07:43 25 4
gpt4 key购买 nike

我有一个程序具有上传文件的功能,然后验证它的名称格式是否正确并将其保存到数据库。

在我的主 Controller 中,我使用@InitBinder 进行验证。

@InitBinder("uploadFileForm")
protected void initBinderUploadForm(WebDataBinder binder) {
binder.setValidator(fileNameFormatValidator);
}

在我的 validator 方法中,我使用了这个代码片段:

static void validateFileName(String fileUploadKey, MultipartFile file, Errors errors) {
Matcher validFilenameMatcher = VALID_FILE_NAME.matcher(file.getOriginalFilename());
if (!validFilenameMatcher.matches()) {
errors.rejectValue(fileUploadKey, null, null, SOME_REGEX);
}
}

我想做的是,我想格式化文件名(比如替换文件名中的一些字符),然后使用 validator 类。因此我需要在验证之前更改文件名。

如何在使用@InitBinder 验证格式之前编辑文件名?

编辑:没人回答?或者问题不明确?

最佳答案

为什么不使用 WebDataBinderaddCustomFormatter就像您添加 validator 一样?

@InitBinder("uploadFileForm")
protected void initBinderUploadForm(WebDataBinder binder) {
binder.addCustomFormatter(fileNameFormatter);
binder.setValidator(fileNameFormatValidator);
}

关于java - 如何在@InitBinder 验证之前执行代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54111334/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com