<强> json数据交互强>
<强> 1.1 @RequestBody 强>
作用:@RequestBody注解用于读取http请求的内容(字符串),通过springmvc提供的HttpMessageConverter接口将读到的内容转换为json、xml等格式的数据并绑定到控制器方法的参数上。
本例子应用:@RequestBody注解实现接收http请求的json数据,将json数据转换为Java对象
<强> 1.2 @ResponseBody 强>
作用:该注解用于将控制器的方法返回的对象,通过HttpMessageConverter接口转换为指定格式的数据如:json、xml等,通过响应响应给客户端
本例子应用:@ResponseBody注解实现将控制器方法返回对象转换为json响应给客户端,
<强> 1.3请求json,响应json实现:
强>
<强> 1.3.1环境准备强>
Springmvc默认用MappingJacksonHttpMessageConverter对json数据进行转换,需要加入杰克逊的包,如下:
<强> 1.3.2配置json转换器强>
在注解适配器中加入messageconverter
& lt; !——注解适配器——比; & lt; bean类=皁rg.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter”比; & lt;属性名=癿essageconverter”比; & lt; list> & lt; bean类=" org.springframework.http.converter.json.MappingJacksonHttpMessageConverter "祝辞& lt;/bean> & lt;/list> & lt;/property> & lt;/bean>
注意:如果使用& lt; mvc:注解驱动/比;则不用定义上边的内容。
<强> 1.3.3控制器编写强>
//商品修改提交json信息,响应json信息 @RequestMapping ("/editItemSubmit_RequestJson”) 公共@ResponseBody物品editItemSubmit_RequestJson (@RequestBody项目项目){抛出异常 System.out.println(项目);//itemService.saveItem(项目); 返回物品; } >之前<强> 1.3.4页面js方法编写:强>
引入js:
type=" text/JavaScript脚本& lt;” src=" https://www.yisu.com/zixun/$ {pageContext.request.contextPath}/js/jQuery-1.4.4.min.js”祝辞& lt;/script>//请求json响应json 函数request_json () { . ajax({美元 类型:“文章”, url:“$ {pageContext.request。contextPath}/项目/editItemSubmit_RequestJson.action”, contentType:“application/json; charset=utf - 8”, 数据:“{”名称”:“测试商品”,“价格”:99.9}”, 成功:功能(数据){ 警报(数据); } }); } >之前<强> 1.4形式提交,响应json实现:强>
采用形式提交是最常用的作法,通常有post和get两种方法,响应json数据是为了方便客户端处理,实现如下:
<强> 1.4.1环境准备强>
同第一个例子
<强> 1.4.2控制器编写强>
//商品修改提交,提交普通形式表单数据,响应json @RequestMapping ("/editItemSubmit_ResponseJson”) 公共editItemSubmit_ResponseJson @ResponseBody物品(物品物品){抛出异常 System.out.println(项目);//itemService.saveItem(项目); 返回物品; } >之前<强> 3页面js方法编写:强>
函数formsubmit () { 用户var=" name=测试商品,价格=99.9”; 警报(用户); $ . ajax ( { 类型:'文章',//这里改为得到也可以正常执行 url:“$ {pageContext.request。contextPath}/项目/editItemSubmit_RequestJson.action’,//ContentType没指定将默认为:应用程序/x-www-form-urlencoded 数据:用户, 成功:功能(数据){ 警报(data.name); } } ) } >之前从上边的js代码看出,已去掉ContentType的定义,ContentType默认为:应用程序/x-www-form-urlencoded格式。
<强> 1.4.4 jquery的形式插件插件强>
SpringMVC教程之json交互使用详解