前言
记录学习历程,上接5.3
JSON :JavaScript 对象表示法(JavaScript Object Notation) 是一种存储数据的方式
JSON
JSON对象由 名称/值对组成,名称和值之间用冒号:隔开
名称必须用双引号" 包含起来
值可以是任意javascript数据类型,字符串,布尔,数字 ,数组甚至是对象
不同的名称/值对之间用 逗号 , 隔开
{“loginName”:“zhangsan”,“loginPwd”:“123456”}
@ResponseBody注解
@ResponseBody注解将返回类型转变为JSON格式
例:
(1)不想显式创建Bean实例,可以在springmvc.xml中添加
< mvc:annotation-driven />,默认会帮我们注册默认处理请求,参数和返回值的类
当配置了mvc:annotation-driven/后,Spring就知道了我们启用注解驱动。然后Spring通过context:component-scan/标签的配置,会自动为我们将扫描到的@Component,@Controller,@Service,@Repository等注解标记的组件注册到工厂中,来处理我们的请求
<mvc:annotation-driven/>
springmvc.xml中添加< mvc:default-servlet-handler/>
<mvc:default-servlet-handler/>
配置< mvc:default-servlet-handler />后,会在Spring MVC上下文中定义一个org.springframework.web.servlet.resource.DefaultServletHttpRequestHandler,它会像一个检查员,对进入DispatcherServlet的URL进行筛查,如果发现是静态资源的请求,就将该请求转由Web应用服务器默认的Servlet处理,如果不是静态资源的请求,才由DispatcherServlet继续处理
具体解释
(2)下载包jackson-annotations、jackson-core、jackson-databind
将3个包导入项目
WEB-INF新建js包,将jQuery.min.js导入
(3)在HelloController类添加方法returnJson,返回JSON格式数据
@ResponseBody
@RequestMapping("/returnJson")
public Collection<Users> returnJson(){
Map<Integer,Users> map=new HashMap<>();
map.put(1,new Users("zhangsan","123456",new Address("Jiangxi","nanchang")));
map.put(2,new Users("lisi","111111",new Address("jiangxi","shangrao")));
return map.values();
}
return返回的类型为Collection< Users>,但标注@ResponseBody注解就转变为JSON格式
(4)index.jsp添加方法
<a href="javascript:void(0)" id="returnJson" onclick="getUsersJson()">TestJson</a>
<script>
function getUsersJson() {
var url="springmvc/returnJson";
var args={};
$.post(url,args,function (data) {
})
}
</script>
<script type="text/javascript" src="/js/jquery.min.js"></script>
在getUsersJson函数中,使用$.post将请求提交到控制器类HelloController中的returnJson方法,参数data就是returnJson方法返回的JSON格式的数据
(等学的大概再回头补充)