SpringMVC使用@RequestBody与@ResponseBody注解与前台进行json格式的数据 剖析

本文详细介绍如何在SpringMVC中使用@RequestBody和@ResponseBody注解实现前后端JSON数据交互,包括前端页面设计、JS代码处理及后端Java代码实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

SpringMVC使用@RequestBody与@ResponseBody注解与前台进行json格式的数据

一、前端页面代码

  1. <form id= "reForm" action= "">
  2. <table>
  3. <tr>
  4. <td>姓名:</td>
  5. <td><input name= "username" type= "text"></td>
  6. </tr>
  7. <tr>
  8. <td>年龄:</td>
  9. <td><input name= "age" type= "text"></td>
  10. </tr>
  11. <tr>
  12. <td>家庭住址:</td>
  13. <td><input name= "address" type= "text"></td>
  14. </tr>
  15. </table>
  16. </form>
  17. <div style= "text-align: center">
  18. <p><button id= "commit">话费充值</button></p>
  19. </div>

二、页面JS代码

  1. <script type= "text/javascript" src= "./js/jquery-1.8.3.js"> </script>
  2. <script type= "text/javascript">
  3. $( function(){
  4. $( "#commit").click( function(){
  5. // 1、使用JQ获取整个form表单的数据,获得的对象是个Object数组
  6. var form = $( "#reForm").serializeArray(); //[Object][Object][Object]
  7. // 2、用来保存遍历数组后的数据,获得的对象是一个Object
  8. var source = {};
  9. $.each(form, function(i,n){
  10. source[form[i].name] = form[i].value;
  11. });
  12. // 3、从Object对象中提取成json字符串
  13. var data = JSON.stringify(source); //{"name":"John","age":24,"address":"USA"}
  14. // 4、本人使用的是利用ajax进行传值,由于是采用Json格式传值,需要设置 "contentType='application/json'"
  15. // 但是只有 $.ajax() 方法有这个属性选项,如果要使用$.get()或者$.post()方法需要重写,这里不做介绍,需要的自行百度
  16. /*
  17. $.post("${pageContext.request.contextPath}/Freemarker/json.action",
  18. {"data":data},function(msg){
  19. alert(msg);
  20. },"json"); /不可直接使用
  21. */
  22. $.ajax({
  23. url: "${pageContext.request.contextPath}/Freemarker/json.action",
  24. type: "POST",
  25. data:data,
  26. contentType: "application/json",
  27. dataType: "json",
  28. success: function(msg){
  29. alert(msg);
  30. }
  31. });
  32. });
  33. });
  34. </script>

三、后端Java代码

  1. @RequestMapping( "/json.action")
  2. public @ResponseBody User json(@RequestBody User data){
  3. System.out.println(data.toString());
  4. //输出结果为User [username=John, age=24, address=USA](toString()方法)
  5. return data;
  6. }

四、一些注意事项

1、需要 jackson包的支持,本人使用的是maven创建项目,只需要在pom.xml中配置下即可

     创建普通Web项目 导入下图中的三个包即可。

  1. <dependency>
  2. <groupId>com.fasterxml.jackson.core </groupId>
  3. <artifactId>jackson-databind </artifactId>
  4. </dependency>

注: 只需要配置jackson-databind即可,其它两个包会依赖注入。

2、使用的ajax必须设置contentType属性为application/json。

3、springmvc是配置文件中开启自动配置处理器映射器与处理器适配器

  1. <!-- 使用注解配置处理器映射器与处理器适配器 -->
  2. <mvc:annotation-driven/>
4、 如果需要后端向前端传递数据就必须使用@ResponseBody注解,否则会报错
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值