Spring Custom Annotation Solver MulitpartFile解析为Null

时间:2017-02-22 09:43:04

标签: spring spring-mvc file-upload spring-boot annotations

我使用的是Spring自定义注释,而不是@requestParam

public Response uploadImages(@myResolver(value = "imageFile", required = true) final MultipartFile multiPartFile) {...}

但是,mulitpart文件参数被解析为null。所以我在HandlerMethodArgumentResolver.resolveArgument中放置一个断点来查看参数是否正在解析,但是从未到达断点。但我知道我的自定义注释适用于其他参数,例如String,long e.t.c。

当我尝试使用@requestParam时,它可以正常工作,并且可以解析多部分文件。

public Response uploadImages(@requestParam(value = "imageFile", required = true) final MultipartFile multiPartFile) {...}

有没有人知道为什么使用我的自定义参数解析器将mulitpart文件解析为null而不使用resolveArgument以及我如何解决这个问题呢?

谢谢!

修改

添加参数解析器的配置

@Override
public void addArgumentResolvers(List<HandlerMethodArgumentResolver> argumentResolvers) {
  super.addArgumentResolvers(argumentResolvers);
  argumentResolvers.add(new MyAnnotationResolver());
}

我的注释定义

@Target(ElementType.PARAMETER)
@Retention(RetentionPolicy.RUNTIME)
@Component
public @interface MyResolver{

  String value() default "";
  boolean required() default true;
  String defaultValue() default ValueConstants.DEFAULT_NONE;
  String errorCode() default "40000";

0 个答案:

没有答案