Ich versuche, einen benutzerdefinierten Validator zu bauen ein MultipartFile
mit Spring
Validator
, um zu überprüfen, aber ich bin vor dieser Frage:Individuelle Validator 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)
Das ist mein Validator-Klasse:
@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.);
}
}
}
Das ist mein 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;
}
}
Ich habe schon beide versucht, aber nicht arbeiten. –
Versuchte sie wie. Sie sind nicht im Beispiel enthalten. Sind sie unmittelbar nach dem Modell wie in der Nachricht beschrieben? Was ist passiert, als du das getan hast? Gleicher Fehler hat sich der Fehler geändert? Nur zu sagen "geht nicht" oder "habe einen Fehler", gibt niemandem etwas, mit dem man arbeiten könnte. – BrianC