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;
    }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM