Spring MVC接受JSON格式的数据

本文介绍了一个使用Spring MVC框架实现的前后端分离应用案例,详细展示了如何通过Ajax发送JSON格式的数据到服务器,并由服务器处理后再返回JSON格式的数据。

前端部分:

index.jsp

[html]  view plain  copy
  1. <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>  
  2. <!DOCTYPE html>  
  3. <html>  
  4. <head>  
  5. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">  
  6. <title>测试接收JSON格式的数据</title>  
  7. <script type="text/javascript" src="js/jquery-1.11.0.min.js"></script>  
  8. <script type="text/javascript" src="js/json2.js"></script>  
  9. <script type="text/javascript">  
  10. $(document).ready(function(){  
  11.     testRequestBody();  
  12. });  
  13. function testRequestBody(){  
  14.     $.ajax("${pageContext.request.contextPath}/json/testRequestBody",// 发送请求的URL字符串。  
  15.             {  
  16.             dataType : "json", // 预期服务器返回的数据类型。  
  17.             type : "post", //  请求方式 POST或GET  
  18.             contentType:"application/json", //  发送信息至服务器时的内容编码类型  
  19.            // 发送到服务器的数据。  
  20.             data:JSON.stringify({id : 1, name : "Spring MVC企业应用实战"}),  
  21.             async:  true , // 默认设置下,所有请求均为异步请求。如果设置为false,则发送同步请求  
  22.            // 请求成功后的回调函数。  
  23.            success :function(data){  
  24.                console.log(data);  
  25.               $("#id").html(data.id);  
  26.               $("#name").html(data.name);  
  27.               $("#author").html(data.author);  
  28.            },  
  29.            // 请求出错时调用的函数  
  30.            error:function(){  
  31.                alert("数据发送失败");  
  32.            }  
  33.     });  
  34. }  
  35. </script>  
  36. </head>  
  37. <body>  
  38. 编号:<span id="id"></span><br>  
  39. 书名:<span id="name"></span><br>  
  40. 作者:<span id="author"></span><br>  
  41. </body>  
  42. </html>  

2.JavaBean

 User.Java

[java]  view plain  copy
  1. package com.bean;  
  2.   
  3. import java.io.Serializable;  
  4.   
  5. public class Book implements Serializable {  
  6.     private Integer id;  
  7.     private String name;  
  8.     private String author;  
  9.     public Integer getId() {  
  10.         return id;  
  11.     }  
  12.     public void setId(Integer id) {  
  13.         this.id = id;  
  14.     }  
  15.     public String getName() {  
  16.         return name;  
  17.     }  
  18.     public void setName(String name) {  
  19.         this.name = name;  
  20.     }  
  21.     public String getAuthor() {  
  22.         return author;  
  23.     }  
  24.     public void setAuthor(String author) {  
  25.         this.author = author;  
  26.     }  
  27.     @Override  
  28.     public String toString() {  
  29.         // TODO Auto-generated method stub  
  30.         return "Book [id=" + id + ", name=" + name + ", author=" + author + "]";  
  31.     }  
  32.       
  33. }  

3.控制类

 BookController.java

[java]  view plain  copy
  1. package com.control;  
  2.   
  3. import javax.servlet.http.HttpServletResponse;  
  4.   
  5. import org.apache.commons.logging.Log;  
  6. import org.apache.commons.logging.LogFactory;  
  7. import org.codehaus.jackson.map.ObjectMapper;  
  8. import org.springframework.stereotype.Controller;  
  9. import org.springframework.web.bind.annotation.RequestBody;  
  10. import org.springframework.web.bind.annotation.RequestMapping;  
  11.   
  12. import com.bean.Book;  
  13.   
  14. @Controller  
  15. @RequestMapping("/json")  
  16. public class BookController {  
  17.    private static final Log logger = LogFactory.getLog(BookController.class);  
  18.    // @RequestBody根据json数据,转换成对应的Object  
  19.    @RequestMapping(value="/testRequestBody")  
  20.    public void setJson(@RequestBody Book book,HttpServletResponse response) throws Exception{  
  21.       // ObjectMapper类是Jackson库的主要类。它提供一些功能将Java对象转换成对应的JSON格式的数据  
  22.        ObjectMapper mapper =new ObjectMapper();  
  23.       // 将book对象转换成json输出  
  24.        logger.info(mapper.writeValueAsString(book));  
  25.        book.setAuthor("海哥");  
  26.        response.setContentType("text/html;charset=UTF-8");  
  27.       // 将book对象转换成json写出到客户端  
  28.        response.getWriter().println(mapper.writeValueAsString(book));  
  29.    }  
  30. }  

截图:



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

潇潇雨歇_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值