SpringMVC Bug(一)
环境:springmvc-4.x
tomcat7.9
idea 2017
jdk 1.8
错误提示:Required request part 'file' is not present
- 遇到这种问题一般情况下都是参数未对应上,但是在我本次处的问题却并不是这么一回事
前端代码
<form action="testFileUpload" method="post" enctype="multipart/form-data">
file:<input type="file" name="file">
desc:<input type="text" name="desc">
<input type="submit" value="submit">
</form>
配置代码
<bean class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="defaultEncoding" value="UTF-8"></property>
<property name="maxUploadSize" value="10240000"></property>
</bean>
在这一步不知道大家有木有发现问题:
接下来看后端代码
public String testFileUpload(@RequestParam(value = "file") MultipartFile file,@RequestParam(value = "desc") String desc)
{
System.out.println("desc"+desc);
System.out.println(file.getOriginalFilename());
return "success";
}
这就是全部逻辑代码,运行出的错就是
Required request part 'file' is not present
在一番Debug之后找到了错误原因,是配置文件出了问题:
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="defaultEncoding" value="UTF-8"></property>
<property name="maxUploadSize" value="10240000"></property>
</bean>
这样之后就解决了问题,
但是这是为什么呢?
因为dispatcher会自行调用名为multipartResolver的实例,如果没有加iddispatcher就不知道该调用谁了。