关于文件上传的报错: The current request is not a multipart request

今天练习注册上传头像时遇到org.springframework.web.multipart.MultipartException: The current request is not a multipart request;上网找了一下,找到几种排错方法:

1.请求方式问题,涉及文件上传的话form表单要用post提交。

2.from表单的属性设置里面加上enctype="multipart/form-data"。

但是这两个方面我都写对了,还是报同样的错。关于文件上传的报错: The current request is not a multipart request_第1张图片

而且是在浏览器直接访问那个注册界面(register.jsp),直接就报那个错,注册界面都没出来。

认真看了一下控制台的日志发现:

心想:怎么变get请求了?再看仔细:怎么跑到DispatcherServlet(前端控制器来了),我是直接访问jsp的呀。再去看了web.xml文件发现:

关于文件上传的报错: The current request is not a multipart request_第2张图片

这才恍然大悟:url-pattern配置为/*了,/*表示拦截所有(即所有的请求都会先到前端控制器,看控制器中有没匹配的方法,刚好匹配上了我在控制器写的那个方法)

最后解决方法:将url-pattern配置的/*该为/就解决了(这样当我直接访问.jsp文件时就不会被拦截,不会再走控制器,而是直接显示那个.jsp文件的内容(即我的注册界面)),当我点击注册提交表时再去走控制器,实现注册和文件上传功能!

你可能感兴趣的:(springmvc)