经过892050177反应得知有关mooc项目课程管理新建和修改失效,问题体现为修改或新建之后后端获取数据为空,导致修改为空新建为空。
经过检测定位,发现问题为List items获取到空list,其中FileItemIterator iter = upload.getItemIterator(request);这段获取的是空值。
spring-boot自带的org.springframework.web.multipart.MultipartFile和Multipart产生冲突,如果同时使用了MultipartResolver 和ServletFileUpload,就会在iter.hasNext()返回false.然后整个循环就跳出去了。整个问题产生的原因是Spring框架先调用了MultipartResolver 来处理http multi-part的请求。这里http multipart的请求已经消耗掉。后面又交给ServletFileUpload ,那么ServletFileUpload 就获取不到相应的multi-part请求。
因此将multipartResolve配置去除,问题就解决了。
关闭mutilpartfile自动配置: 在启动类上加入如下标签: @SpringBootApplication(exclude = {MultipartAutoConfiguration.class}) github已更新至最新版本,1.1.3 |