当前位置: 代码迷 >> 综合 >> springMVC 中 @ResponseBody@RequestBody 传递json数据
  详细解决方案

springMVC 中 @ResponseBody@RequestBody 传递json数据

热度:58   发布时间:2023-12-17 19:55:33.0

在SpringMVC中,可以使用@RequestBody和@ResponseBody两个注解,分别完成请求报文到对象和对象到响应报文的转换。

1.@ResponseBody

该注解用于将Controller的方法返回的对象,通过适当的HttpMessageConverter转换为指定格式后,写入到Response对象的body数据区。

即可以将返回的对象(带有数据的javabean的集合List或Map)转换成JSON。

2.@RequestBody

该注解用于读取Request请求的body部分数据,使用系统默认配置的HttpMessageConverter进行解析,然后把相应的数据绑定到要返回的对象上。

3.HttpMessageConverter

4.jackson包

5.ajax使用要注意的

  1. JSON.stringify()和$.parseJSON()实现字符串和json对象之间的转换。注意要传过去的data是一个字符串。

  2.要设置contentType: 'application/json',而不是使用默认值: "application/x-www-form-urlencoded".

  

jsp页面

          $(function(){$("#btn").click(function(){var data2 = {"id":23,"name":"tt","passwd":"345"};//alert(JSON.stringify(data2));
                  $.ajax({type: 'post',url:'json.action',cache:false,data:JSON.stringify(data2),contentType: 'application/json',dataType: 'json',success:function(result){//result = $.parseJSON(result);alert(result[0].password);alert(JSON.stringify(result));},});});

controller

    @RequestMapping(value="/json.action",method=RequestMethod.POST)@ResponseBodypublic List<Author> getAuthor2(@RequestBody User user){System.out.println(user.getName());Author aut1 = authorService.findAuthor(3);Author aut2 = authorService.findAuthor(4);List<Author> list = new ArrayList<Author>();list.add(aut1);list.add(aut2);return list;}

  相关解决方案