SpringMVC使用@RequestBody与@ResponseBody注解与前台进行json格式的数据
2017-12-12 14:58
901 查看
一、前端页面代码
[b]二、页面JS代码[/b]
三、后端Java代码
四、一些注意事项
1、需要 jackson包的支持,本人使用的是maven创建项目,只需要在pom.xml中配置下即可
创建普通Web项目 导入下图中的三个包即可。
注:只需要配置jackson-databind即可,其它两个包会依赖注入。
2、使用的ajax必须设置contentType属性为application/json。
3、springmvc是配置文件中开启自动配置处理器映射器与处理器适配器
<form id="reForm" action=""> <table> <tr> <td>姓名:</td> <td><input name="username" type="text"></td> </tr> <tr> <td>年龄:</td> <td><input name="age" type="text"></td> </tr> <tr> <td>家庭住址:</td> <td><input name="address" type="text"></td> </tr> </table> </form> <div style="text-align: center"> <p><button id="commit">话费充值</button></p> </div>
[b]二、页面JS代码[/b]
<script type="text/javascript" src="./js/jquery-1.8.3.js"></script> <script type="text/javascript"> $(function(){ $("#commit").click(function(){ // 1、使用JQ获取整个form表单的数据,获得的对象是个Object数组 var form = $("#reForm").serializeArray();//[Object][Object][Object] // 2、用来保存遍历数组后的数据,获得的对象是一个Object var source = {}; $.each(form,function(i,n){ source[form[i].name] = form[i].value; }); // 3、从Object对象中提取成json字符串 var data = JSON.stringify(source);//{"name":"John","age":24,"address":"USA"} // 4、本人使用的是利用ajax进行传值,由于是采用Json格式传值,需要设置 "contentType='application/json'" // 但是只有 $.ajax() 方法有这个属性选项,如果要使用$.get()或者$.post()方法需要重写,这里不做介绍,需要的自行百度 /* $.post("${pageContext.request.contextPath}/Freemarker/json.action", {"data":data},function(msg){ alert(msg); },"json"); /不可直接使用 */ $.ajax({ url:"${pageContext.request.contextPath}/Freemarker/json.action", type:"POST", data:data, contentType:"application/json", dataType:"json", success:function(msg){ alert(msg); } }); }); }); </script>
三、后端Java代码
@RequestMapping("/json.action") public @ResponseBody User json(@RequestBody User data){ System.out.println(data.toString()); //输出结果为User [username=John, age=24, address=USA](toString()方法) return data; }
四、一些注意事项
1、需要 jackson包的支持,本人使用的是maven创建项目,只需要在pom.xml中配置下即可
创建普通Web项目 导入下图中的三个包即可。
<dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> </dependency>
注:只需要配置jackson-databind即可,其它两个包会依赖注入。
2、使用的ajax必须设置contentType属性为application/json。
3、springmvc是配置文件中开启自动配置处理器映射器与处理器适配器
<!-- 使用注解配置处理器映射器与处理器适配器 --> <mvc:annotation-driven/>4、如果需要后端向前端传递数据就必须使用@ResponseBody注解,否则会报错
相关文章推荐
- SpringMVC中使用@RequestBody,@ResponseBody注解实现Java对象和XML/JSON数据自动转换)
- SpringMVC中使用@RequestBody,@ResponseBody注解实现Java对象和XML/JSON数据自动转换(上)
- SpringMVC中使用@RequestBody,@ResponseBody注解实现Java对象和XML/JSON数据自动转换(下)
- SpringMVC中使用@RequestBody,@ResponseBody注解实现Java对象和XML/JSON数据自动转换(上)
- SpringMVC中使用@RequestBody,@ResponseBody注解实现Java对象和XML/JSON数据自动转换(上)
- springmvc4整合AJAX使用@ResponseBody注解返回JSON数据格式
- SpringMVC中使用@RequestBody,@ResponseBody注解实现Java对象和XML/JSON数据自动转换(下)
- SpringMVC中使用@RequestBody,@ResponseBody注解实现Java对象和XML/JSON数据自动转换(下)
- SpringMVC中使用@RequestBody,@ResponseBody注解实现Java对象和XML/JSON数据自动转换(上)
- SpringMVC中使用@RequestBody,@ResponseBody注解实现Java对象和XML/JSON数据自动转换(上)
- SpringMVC中使用@RequestBody,@ResponseBody注解实现Java对象和XML/JSON数据自动转换(下)
- SpringMVC中使用@RequestBody,@ResponseBody注解实现Java对象和XML/JSON数据自动转换(下)
- SpringMVC中使用@RequestBody,@ResponseBody注解实现Java对象和XML/JSON数据自动转换(上)
- SpringMVC中使用@RequestBody,@ResponseBody注解实现Java对象和XML/JSON数据自动转换(上)
- 关于SpringMVC使用@RequestBody注解接受json格式数据报415错误
- SpringMVC中在使用@ResponseBody时如何将Date类型的日期返回指定格式的json数据
- 修改零配置的SpringMVC中使用@ResponseBody注解返回json的时间格式
- SpringMVC项目使用@ResponseBody返回application/json格式的数据出现状态码HTTP Status 406
- SpringMVC中出现" 400 Bad Request "错误(用@ResponseBody处理ajax传过来的json数据转成bean)的解决方法
- SpringMVC使用@ResponseBody时返回json的日期格式、@DatetimeFormat使用注意