SSM后台数据与前端(PC、M站、Android、IOS)的交互——页面渲染

一、介绍

对于后台开发人员来说,更多的是处理客户端发过来的请求和业务逻辑,很少人会考虑页面的渲染问题。
后台开发人员最多也就在jsp页面或者其他视图框架来渲染PC端的页面,对于其他的客户端,他们经常无能为力,如果PC端采用jsp或者其他视图框架来渲染页面,后台开发人员就得对相同的请求处理两次(一次数据传给PC端用,一次数据返回给其他客户端用(Android、IOS、M站)),这样就显得有点麻烦,具体情况看下面代码。

二、用Jstl来渲染视图

(1)、后台Controller处理代码:
SSM后台数据与前端(PC、M站、Android、IOS)的交互——页面渲染
(2)、jstl渲染视图页面:
SSM后台数据与前端(PC、M站、Android、IOS)的交互——页面渲染

对于使用这种方式渲染页面,如果仅仅存在PC端,这种方法没有问题。但如果对于Android和IOS客户端,与它们进行数据交换的最好方式是用json,所以刚刚上面的Controller并不合适,还要重新再写一个返回json字符串的方法。

三、使用json来实现数据格式的统一

(1)、后台Controller处理代码:
SSM后台数据与前端(PC、M站、Android、IOS)的交互——页面渲染
此处使用@ResponseBody注解,该注解可以将对象自动转为json字符串,但需要jackson包的支持,如果不添加jackson包,则会报如下错误:
SSM后台数据与前端(PC、M站、Android、IOS)的交互——页面渲染
maven工程可以在pom.xml文件中添加如下依赖:
SSM后台数据与前端(PC、M站、Android、IOS)的交互——页面渲染
再次请求结果,会返回json字符串,如下图所示:
SSM后台数据与前端(PC、M站、Android、IOS)的交互——页面渲染
但这样直接将一个对象进行json字符串返回并不是一个很好的办法,因为数据结构可能会变动,而且对数据的增删改查的结果也无从知晓,所以,最好对返回对象进行一次数据的封装,封装成统一的数据格式,如下所示:
SSM后台数据与前端(PC、M站、Android、IOS)的交互——页面渲染
Controller中的方法改为如下:
SSM后台数据与前端(PC、M站、Android、IOS)的交互——页面渲染
封装完后的json格式为如下,具有通用性:
SSM后台数据与前端(PC、M站、Android、IOS)的交互——页面渲染
(2)、ajax渲染视图页面:
页面采用ajax方式发送请求,并用解析数据:
SSM后台数据与前端(PC、M站、Android、IOS)的交互——页面渲染
SSM后台数据与前端(PC、M站、Android、IOS)的交互——页面渲染

这种方式的好处就是,后台可以用统一的json结构和PC端、客户端进行数据的交互,但本文中,PC端对ajax获取得到的数据只是用简单的dom操作进行页面渲染,现在很少用这种方式来处理数据,有兴趣的话可以查看前端的模板引擎。