一、注解说明
1、@RequestBody
作用:@RequestBody注解用于读取http请求的内容(字符串),通过springmvc提供的HttpMessageConverter接口将读到的内容转换为json、xml等格式的数据并绑定到controller方法的参数上。
2、@ResponseBody
作用:@ResponseBody注解用于将Controller的方法返回的对象,通过HttpMessageConverter接口转换为指定格式的数据,如json、XML等,通过response响应给客户端。
二、请求json,响应json
1、加入jar包
springmvc默认使用MappingJacksonHttpMessageConverter对json数据进行转换,需要加入jackson的jar包。

2、配置json转换器
第一种方式:使用注解适配器的配置方式。
<!--注解适配器 --> <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"> <property name="messageConverters"> <list> <bean class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"></bean> </list> </property> </bean>
第二种方式:使用注解驱动方式,则不需要进行任何配置即可使用。
3、controller方法获取json,响应json
@RequestMapping("/updateitemsByJson") //使用注解,接受json,返回json public @ResponseBody ItemsCustom updateitemsByJson(@RequestBody ItemsCustom itemsExtend) throws Exception{ System.out.println(itemsExtend); return itemsExtend; }
4、编写jsp页面
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title>修改商品信息</title> <!--引入jquery--> <script type="application/javascript" src="${pageContext.request.contextPath}/js/jquery-1.4.4.min.js"></script> <!--ajax异步请求--> <script type="application/javascript"> function request_json() { $.ajax({ type :"post", url:"${pageContext.request.contextPath}/updateitemsByJson.action", contentType:"application/json;charset=utf-8", data:'{"id":1,"name":"笔记本","price":5005}', success:function (date) { alert(date.toString()) } }); } </script> </head> <body> <input type="button" value="请求json" onclick="request_json()"> </body> </html>
5、测试结果
请求:

响应:

三、请求key/value,返回json
1、加入jar包
springmvc默认使用MappingJacksonHttpMessageConverter对json数据进行转换,需要加入jackson的jar包。

2、配置json转换器
第一种方式:使用注解适配器的配置方式。
<!--注解适配器 --> <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"> <property name="messageConverters"> <list> <bean class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"></bean> </list> </property> </bean>
第二种方式:使用注解驱动方式,则不需要进行任何配置即可使用。
3、controller方法获取key/value,响应json
@RequestMapping("/updateitemsByJson1") //使用注解,接受json,返回json public @ResponseBody ItemsCustom updateitemsByJson1(ItemsCustom itemsExtend) throws Exception{ System.out.println(itemsExtend); return itemsExtend; }
4、jsp页面编写
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title>修改商品信息</title> <!--引入jquery--> <script type="application/javascript" src="${pageContext.request.contextPath}/js/jquery-1.4.4.min.js"></script> <!--ajax异步请求--> <script type="application/javascript"> function response_json() { $.ajax({ type:"post", url:"${pageContext.request.contextPath}/updateitemsByJson1.action", /* contentType:"application/x-www-from-urlencode",*/ data:"id=1&name=笔记本&price=500", success:function (data) { alert(data.toString()); } }); } </script> </head> <body> <input type="button" value="响应json" onclick="response_json()"> </body> </html>
5、测试结果
请求:

响应:

来源:https://www.cnblogs.com/jack1995/p/7357586.html