SpringMVC之JSON交互
Posted 贰零一八
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpringMVC之JSON交互相关的知识,希望对你有一定的参考价值。
#操作:
1).添加相关Spring包,另外,在http://mvnrepository.com/artifact/com.fasterxml.jackson.core下载
fastjson包,其实在github上有相关代码备份;
2).在web.xml中配置前端控制器和Spring-config.xml的路径;
3).在Spring-config.xml中,添加额外如下配置:
<mvc:annotation-driven> <!--配置@ResponseBody由fastjson解析--> <mvc:message-converters> <bean class="com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter"/> </mvc:message-converters> </mvc:annotation-driven> <mvc:default-servlet-handler /> <!-- 支持mvc注解驱动 --> <!--在spring中一般采用@RequestMapping注解来完成映射关系, 要想使@RequestMapping注解生效必须向上下文中注册
DefaultAnnotationHandlerMapping
和一个AnnotationMethodHandlerAdapter 实例,这两个实例分别在类级别和方法级别处理。而annotation-driven配置帮助
我们自动完成上述两个实例的注入。--> <mvc:resources location="/js/" mapping="/js/**"/>
4).根据表单写javaBean;
5).写jsp页面,这里面涉及到ajax
1 <%-- 2 Created by IntelliJ IDEA. 3 User: shijinglu 4 Date: 2019/2/1 5 Time: 20:21 6 To change this template use File | Settings | File Templates. 7 --%> 8 <%@ page contentType="text/html;charset=UTF-8" language="java" %> 9 <html> 10 <head> 11 <title>测试JSON交互</title> 12 13 <!--引入js文件,引入路径 从当前项目的js文件夹下的jquery-1.11.3.min.js--> 14 <script type="text/javascript" src="${pageContext.request.contextPath}/js/jquery-1.11.3.min.js"> 15 </script> 16 <!--写一个function testJson()--> 17 <script type="text/javascript"> 18 function testJson() { 19 <!--获取用户输入的用户名和密码--> 20 var username=$("#username").val(); 21 var password=$("#password").val(); 22 <!--发一个ajax请求--> 23 $.ajax({ 24 <!--testJson路径 默认是当前页的地址,这里是交给testJson处理--> 25 url:"${pageContext.request.contextPath}/testJson", 26 type:"post", 27 <!--把发送过来的数据转换成json字符串--> 28 data:JSON.stringify({username:username,password:password}), 29 <!--请求类型设置为json字符串,并设置字符集为utf-8--> 30 contentType: "application/json;charset=UTF-8", 31 <!--定义回调的响应格式为json字符串,该属性可以省略--> 32 dataType:"json", 33 success : function(data) { 34 if(data !=null){ 35 alert("您输入的用户名为:"+data.username+"密码为:"+data.password); 36 } 37 } 38 }); 39 40 } 41 </script> 42 </head> 43 <body> 44 <form> 45 用户名:<input name="username" id="username"><br/> 46 密 码:<input type="password" name="password" id="password"><br/> 47 <input type="button" value="测试json交互" onclick="testJson()"> 48 </form> 49 </body> 50 </html>
6).写控制器;
@Controller //表示控制器 等价于在配置文件里面写bean id public class UserController{ /** * 接收页面请求的数据,并以json格式返回数据 * */ @RequestMapping(value="/testJson",method = RequestMethod.POST,consumes = "application/json") //@ReponseBody:是把user对象转换为json,因为响应端的浏览器不认识java对象,但认识js对象标记。 @ResponseBody //@RequestBody:把请求的json字符串(data后面的内容)转换成user对象 public User testJson(@RequestBody User user){ System.out.println(user); //并返回json格式 return user; } }
原理待补充;
以上是关于SpringMVC之JSON交互的主要内容,如果未能解决你的问题,请参考以下文章
Ajax json交互和SpringMVC中@RequestBody
SpringMVC学习——SpringMVC与前台的json数据交互