SpringMVC教程之json交互使用详解

  

<强> 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交互使用详解