0
我試圖建立一個自定義的驗證檢查使用Spring
Validator
一個MultipartFile
,但我面對這個問題:定製驗證到MultipartFile
An Errors/BindingResult argument is expected to be declared immediately after the model attribute, the @RequestBody or the @RequestPart arguments to which they apply: public org.springframework.web.context.request.async.DeferredResult br.com.mobtrack.api.resource.CityResource.uploadImage(org.springframework.web.multipart.MultipartFile,org.springframework.validation.BindingResult)
這是我的Validator類:
@Component
public class MultipartFileValidator implements Validator{
@Override
public boolean supports(Class<?> aClass) {
return MultipartFile.class.isAssignableFrom(aClass);
}
@Override
public void validate(Object o, Errors errors) {
MultipartFile file = (MultipartFile) o;
if (file == null || file.isEmpty()){
errors.reject("image","send a valid image.);
}
}
}
這是我RestController
:
@PostMapping("/image")
public DeferredResult<String> uploadImage(@Valid MultipartFile image, BindingResult result) {
if (result.hasErrors()) {
throw new ImageNotFoundException("test");
} else {
DeferredResult<String> deferredResult = new DeferredResult<>();
Thread thread = new Thread(new ImageStorageRunnable(image, deferredResult, imageStorage));
thread.start();
return deferredResult;
}
}
我已經嘗試了兩種,但沒有工作。 –
試過他們如何。他們不在提供的例子中。他們是否立即在消息中描述的模型之後?當你這樣做時發生了什麼?錯誤發生了同樣的錯誤?只是說「不起作用」或「出錯」並沒有給任何人處理任何事情。 – BrianC