SpringMVC接收不到前端传递的参数原因分析
2018-07-13 13:26
513 查看
前言
在学习S 5b4 pringMvc的时候遇到了一个问题,后台一直接收不到前台传递过来的参数,耽误了好长时间终于找到了原因,写篇博客记录下这个坑,嘤嘤嘤 --__--
代码清单
使用SpringMvc接受前台传递的参数非常简单,只要参数名和前台表单中的名称一致即可,我弄得是一个文件上传的例子,所以看下我的前台页面
<body> <!-- enctype="multipart/form-data"在文件上传时加入,编码类型,其值默认是application/x-www-form-urlencoded --> <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> <br><br> <a href="emps">List All Employees</a> </body>
下面是SpringMvc的控制器
@Controller public class springMVCTest { @RequestMapping("/testFileUpload") public String testFileUpload(@RequestParam("desc") String desc, @RequestParam("file") MultipartFile file) throws IOException { System.out.println("desc: " + desc); System.out.println("originalFilename: " + file.getOriginalFilename()); System.out.println("inputStream: " + file.getInputStream()); return "success"; b68 } }
接着是web.xml文件
<!-- 配置DispatcherServlet --> <!-- SpringMvc会根据servlet-name配置,找到/WEB-INF/dispatcher-servlet.xml作为配置文件载入Web工程中 --> <servlet> <servlet-name>springDispatcherServlet</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:springmvc.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>springDispatcherServlet</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping>
然后是SpringMvc的配置文件
<!-- 配置自动扫描的包 --> <context:component-scan base-package="com.zgz.springmvc.crud"></context:component-scan> <context:component-scan base-package="com.zgz.springmvc.test"></context:component-scan> <!-- 配置视图解析器 --> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/WEB-INF/views/"></property> <property name="suffix" value=".jsp"></property> </bean>
之后坑就来了,由于是文件上传,所以需要在Spring MVC的配置文件中添加multipartResolver,添加就添加呗,于是我就加上了下面这一段代码:
<!-- 配置 MultipartResolver --> <bean id="commonsMultipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <property name="defaultEncoding" value="UTF-8"></property> <property name="maxUploadSize" value="1024000"></property> </bean>
然后坑就出现,费尽周折发现是id写错了,id="multipartResolver",修改代码为:
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <property name="defaultEncoding" value="UTF-8"></property> <property name="maxUploadSize" value="1024000"></property> </bean>
写在最后
附上我喜欢的一句话
我想也许有一天,你会变成像我这样的老人,并向一位年轻人娓娓道来:你是如何将生活带给你柠檬般的酸楚,酿成犹如柠檬汽水般的甘甜。
相关文章推荐
- SpringMVC接收不到前端参数原因分析
- SpringMVC接收不到网页POST方式的参数(找不到原因的解决方法)
- 关于SpringMVC或Struts2接受参数接收不到的原因
- SpringMVC 后台接口,使用axios 传递参数接收不到
- ajax传递的参数服务器端接受不到的原因
- SpringMVC大坑之PUT方法接收不到请求参数
- 随笔笔记三——关于SpringMVC接收请求参数和向页面传递参数
- 关于onActivityResult方法接收不到传递参数的问题
- springMVC如何接收前端传递的数组数据
- axios发送post请求springMVC接收不到参数的解决方法
- springmvc 传递和接收数组参数
- SpringMVC,Controller如何接收前端传递过来的数组
- Vue父组件接收不到子组件$emit事件的原因分析
- 后端接收不到AngularJs中$http.post发送的数据原因分析及解决办法
- angular的post请求,SpringMVC后台接收不到参数值的解决方案
- WebApi传递JSON参数 接收不到参数
- springmvc接收和传递参数
- SpringMVC之后台接收参数与前台传递数据
- springMVC实体类接收表单,请求不到接口(参数不匹配)
- springMVC 中接收前端传递的对象、数组等数据的方式详解