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