大家好,欢迎来到IT知识分享网。
1.简介
@RequestBody
作用:
1) 该注解用于读取Request请求的body部分数据,使用系统默认配置的HttpMessageConverter进行解析,然后把相应的数据绑定到要返回的对象上;
2) 再把HttpMessageConverter返回的对象数据绑定到 controller中方法的参数上。
使用时机:
1) GET、POST方式提时, 根据request header Content-Type的值来判断:
A.application/x-www-form-urlencoded, 可选(即非必须,因为这种情况的数据@RequestParam, @ModelAttribute也可以处理,当然@RequestBody也能处理);
B.multipart/form-data, 不能处理(即使用@RequestBody不能处理这种格式的数据);
C.其他格式, 必须(其他格式包括application/json, application/xml等。这些格式的数据,必须使用@RequestBody来处理);
2) PUT方式提交时, 根据request header Content-Type的值来判断:
A.application/x-www-form-urlencoded, 必须;
B.multipart/form-data, 不能处理;
C.其他格式, 必须;
说明:
request的body部分的数据编码格式由header部分的Content-Type指定;
requestBody接收的是JSON对象的字符串,AJAX传递数据使用的是JSON,所以需要使用JSON.stringify()转化为JSON字符串,从而被requestBody接收。
@ResponseBody
作用:
该注解用于将Controller的方法返回的对象,通过适当的HttpMessageConverter转换为指定格式后,写入到Response对象的body数据区。
使用时机:
返回的数据不是html标签的页面,而是其他某种格式的数据时(如json、xml等)使用;
2.Spring MVC的配置文件
增加配置
3.需要的jar包
在Maven中增加依赖
Spring-webmvc 和 jsckson-mapper-asl
注:在jsp中使用ajax提交时出现了下面的问题: 415 (Unsupported Media Type), 可能出现的原因如下:
1. dataParam 格式错误,不符合json字符串规范
2. dataParam 参数不能绑定到控制器方法的参数上面,不是一一对应
3. 没有在ajax提交时设置contentType
contentType指的是前台传递到后台的格式,dataType指的是由后台传到前台的格式
4. jackson的jar包不对或者不全:
不应该使用org.codehaus.jackson下面的jackson.jar, 应该使用com.fasterxml.jackson.core下面的jackson-core和jackson-databind 的jar包
5. 加上
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/22678.html