SpringMVC 中使用 json 进行前后端数据交互的方法 - Go语言中文社区

SpringMVC 中使用 json 进行前后端数据交互的方法


本文旨在总结在 SpringMVC 中使用 json 进行前后端数据交换的方法。

前端到后端数据的传输

首先传入依赖

<!-- Jackson Json处理工具包 -->
<dependency>
	<groupId>com.fasterxml.jackson.core</groupId>
	<artifactId>jackson-databind</artifactId>
	<version>${jackson.version}</version>
</dependency>

我们的前端代码如下:
在这里插入图片描述

从代码中可见,前端使用了 jquery 中的 ajax 技术进行 json 数据的传输,将{name:“张三”,age:“12”}传输到了后端。

在后端,我们的代码如下
在这里插入图片描述
在使用 SpringMVC 框架的前提下,我们可以直接使用参数来接收传入的 json 字符串
在这里插入图片描述
查看控制台,发现确实接收到了前端传入的数据
在这里插入图片描述

后端到前端数据的传输

后端到前端数据的传输方法较多,我使用的是 ajax 的回调函数。
在这里插入图片描述
若使用 ajax 成功将数据传入后端,便会执行 success 函数,data 为后端向前端传输的 json 字符串。也许你会问,哎呀,后端啥时候向前端传输过 json 数据了?莫急,且往下看。
在这里插入图片描述
可见,我们向前端返回的是一个 map,那它又是如何变成 json 字符串的呢?其实,不知你发现没有,我们上面使用了一个注解,@ResponseBody。看到这里,相信大家都明白了,实际上 @ResponseBody 这个注解有将 Controller 类方法返回的对象转换为 json 并响应给前端的功能,于是,我们的 map 便顺理成章地成了 json。

前端显示如下,证明数据真正从后端传到了前端。
在这里插入图片描述
对于在 SpringMVC 中使用 json 进行前后端数据交互的方法就总结到这里,希望能够真正帮助到各位,若本文有错也请各位在评论中指出,感谢。

最后附上完整代码

后端:

package exchange.controller;

import java.util.HashMap;
import java.util.Map;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
public class MVCController {

	private final static Logger logger = LoggerFactory.getLogger(MVCController.class);
	
	@ResponseBody
	@RequestMapping("testJson")
	public Map<String, String> testJson(String name,String age) {
		Map<String, String> map = new HashMap<String, String>();
		logger.info("从前端接收到json数据:name=" + name);
		logger.info("从前端接收到json数据:age=" + age);
		
		map.put("name", name);
		map.put("age",age);
		return map;
	}
}

前端:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script src="http://code.jquery.com/jquery-latest.js"></script>
</head>
<body>
从后台接收的name:<p id="p1"></p>
从后台接收的age:<p id="p2"></p>
</body>
<script>
	$(document).ready(function(){
		$.ajax({
            type: "POST",
            url:"../testJson",
            data:{name:"张三",age:"12"},
            async: true,
            error: function(request) {
                alert("上传数据出错!");
            },
            success: function(data) {
				$("#p1")[0].innerHTML = data.name;
				$("#p2")[0].innerHTML = data.age;
            }
        });
	});
</script>
</html>
版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/geffin/article/details/98634982
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢