json数据交互
一、@RequestBody
作用:@RequestBody 注解用于读取 http 请求的内容(字符串),通过springmvc提供的 HttpMessageConverter 接口将读到的内容( json 数据)转换为 java 对象并绑定到 Controller 方法的参数上。
- 传统的请求参数:
itemEdit.action?id=1&name=zhangsan&age=12
- 现在的请求参数:
使用 post 请求,在请求体里面加入json数据
{
"id":1,
"name":"测试商品",
"price":99.9,
"detail":"测试商品描述"
"pic":"111.jpg"
}
二、@ResponseBody
作用:@ResponseBody 注解用于将 Controller 的方法返回的对象,通过 SpringMVC 提供的 HTTPMessageConverter 接口转换为指定格式的数据,如:json、xml 等,通过 Response 响应给客户端
三、请求json,响应json实现
1.加入jar包
2.ItemController编写
/**
* 测试json交互
*/
@RequestMapping("testJson")
//@ResponseBody把pojo转成json串响应用户
//@RequestBody用于接收用户传入json串转成pojo
public @ResponseBody Item testJson(@RequestBody Item item){
return item;
}
四、配置json转换器
如果不使用注解驱动<mvc:annotation-driven/>,就需要给处理器适配器配置json转换器。
在springmvc.xnl文件中,给处理器适配器加入json转换器:
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
<property name="messageConverters">
<list>
<bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"></bean>
</list>
</property>
</bean>