zoukankan      html  css  js  c++  java
  • springMVC中使用注解@ResponseBody,@RequestBody传递json数据

    在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)
        @ResponseBody
        public 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;
        }
  • 相关阅读:
    SpringBoot项目maven 打包时跳过测试
    scss 学习笔记
    万事都源于一个字:缘
    H To begin or not to begin 题解(思维)
    条件 题解(bitset优化floyd)
    Dima and Salad 题解(01背包变形)
    P1052 [NOIP2005 提高组] 过河 题解(dp+数论优化)
    A Simple Math Problem 题解(数论)
    威佐夫博弈
    P3951 [NOIP2017 提高组] 小凯的疑惑 题解(数论/结论题)
  • 原文地址:https://www.cnblogs.com/yeming/p/5444949.html
Copyright © 2011-2022 走看看