点击蓝字关注我们
SSM框架中JSON数据交互实现页面显示图书种类
一、任务简介
SSM框架整合开发中,用Jackson实现在JSP页面解析Controller返回的JSON格式的图书种类信息,显示结果如下图所示:
二、任务分析
用SSM框架实现在访问NewFile.jsp页面时,向Controller发送一个请求,用MyBatis实现从数据库中获取图书种类的信息,Spring框架实现实例化Bean、AOP以及事务管理等,Spring MVC负责根据前台请求执行查询方法,返回JSON格式的数据,在NewFile.jsp中解析并显示JSON数据。
MyBatis访问数据库获得种类信息,基于注解的方式的方式映射SQL语句。
三、支撑知识点
JSON(JavaScript Object Notation,JS对象标记)是一种轻量级的数据交换格式。它是基于JavaScript的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。JSON和XML都可以实现只关注数据内容,忽略数据类型,XML中存放每个数据都需要开始标签和结束标签,JSON比XML更小、更快、更易阅读和解析。
1.JSON
(1)JSON中有6种数据类型:
string:字符串,必须要用双引号引起来。
number:数值,与JavaScript的number一致,整数(不使用小数点或指数计数法)最多为 15 位,小数的最大位数是 17。
object:JavaScript的对象形式,{ key:value }表示方式,可嵌套,key必须是字符串,value可以是JSON中合法的数据。
array:数组,JavaScript的Array表示方式[ value1,…,valueN ],可嵌套。
true/false:布尔类型,JavaScript的boolean类型。
null:空值,JavaScript的null。
(2)JSON对象
JSON对象用花括号“{}”括起来,每一个元素都是由key:value组成,其中key为字符串,value可以是JSON中的任意一种类型的值,元素和元素之间用逗号分隔。
比如:
{ "firstName":"John","lastName":"Doe" }
(3)JSON数组
JSON数组用方括号“[]”括起来,数组元素之间用英文状态的逗号“,”分隔。JSON数组元素可以是常量,也可以是对象。
2.Jackson简介
Jackson 是一个能够将java对象序列化为JSON字符串,也能够将JSON字符串反序列化为java对象的框架。使用Jackson要用到下列三个Jar包:
jackson-annoations-2.8.8.jar:JSON转换注解包;
jackson-core-2.8.8.jar:JSON转换核心包;
jackson-databind-2.8.8.jar:JSON转换的数据绑定包。
3.用注解方式实现JSON数据交互
用注解方式实现JSON数据交互,需要用到@RequestBody和@ResponseBody。@RequestBody用于将请求的数据绑定到方法形参中,@ResponseBody标注在Controller的方法上,@ResponseBody 表示该方法的返回结果直接写入 HTTP response body 中,一般在异步获取数据时使用。
注意:一般Controller类的方法返回String,一旦加上@ResponseBody,方法不再返回String,而是返回JSON数据。
4.SpringMVC中静态资源的访问
Spring MVC中前端控制器配置时,默认拦截所有请求,包括静态资源,这样就会在页面中找不到静态资源。因此,需要在程序中配置静态资源的访问映射,通常用三种方法:
方法1:在SpringMVC配置文件中用配置
方法2:在SpringMVC配置文件中配置
方法3:在web.xml中配置
四、任务实施
第一步:打开以后的动态Web项目chap12,并导入Jackson的三个Jar包。
本文详细介绍后端控制器CagtegoryController的写法、NewFile.jsp的写法和springmvc-config.xml的配置中配置静态资源。其他类和文件的写法,参看程序员训练营公众号文章:《用SSM框架实现在页面显示图书种类》
第二步:修改CagtegoryController类,核心代码如下:
CagtegoryController类中增加一个方法,实现将图书种类列表以JSON格式返回,核心代码如下:
第三步:在项目WebContent下新建文件夹js,将jquery-1.11.3.min.js放入文件夹。
第四步:在SpringMVC配置文件中配置静态资源映射。
配置静态资源映射常用的方法有三种,常用的是第一种,代码如下:
第五步:编写NewFile.jsp页面,通过Ajax访问Controller请求,并解析JSON数据。
CategroiesMapper接口包含方法public ListlistCategories();,该方法实现查询所有图书种类信息。通过@Select注解配置SQL语句映射,示例代码如下:
第六步:启动Web服务器,运行并测试结果
选中项目,右键,Run as->Run on Server,将Web项目发布到Tomcat服务器,运行并测试结果如下图所示:
✬欢迎关注程序员训练营公众号✬
✬分享朋友圈,邀请更多小伙伴一起学习或投稿吧~☺
编辑 | 程序员训练营