说到页面渲染,这里不得不给大家科普一下:
html文件负责显示页面,后台数据可以通过ajax方式获取,如果数据完全使用ajax获取,这样页面和后端就没什么联系,这时候就可以成为前后端分离。jsp页面是一种页面渲染方式,它是对jsp文件解析后,将后台数据填充到html页面并返回到前端,这种方式是非前后端分离的,所以,脱离了容器,jsp页面啥都不是,根本打不开。jsp可以写java代码,可以写逻辑,功能很强大,但是也是它逐渐被抛弃的原因。模板引擎, 目前是比较流行的一种写法,或许你会问:前后端分离已经很好用了,为啥还要用模板引擎?原因是这样的,前后端分离的页面,是不经过容器控制的,所以安全框架不能对它进行过滤,这是其一,其二、前后端分离的页面,数据是ajax异步获取的,所以首次打开页面时(比如爬虫爬取页面,未执行js等),获取到的只是一些html元素,没有数据填充,而模板引擎可以在获取html文件时就将数据填充进去。模板引擎也是依赖于后端容器,页面中的内容使用标签进行替换。
本文不讲前后端分离,先讲下模板引擎,Springboot支持很多模板引擎,thymeleaf算是比较好用的一种。
项目地址: 品茗IT-同步发布
品茗IT 提供在线支持:
一键快速构建Spring项目工具
一键快速构建SpringBoot项目工具
一键快速构建SpringCloud项目工具
一站式Springboot项目生成
Mysql一键生成Mybatis注解Mapper
如果大家正在寻找一个java的学习环境,或者在开发中遇到困难,可以加入我们的java学习圈,点击即可加入,共同学习,节约学习时间,减少很多在学习中遇到的难题。
需要引入spring-boot-starter-thymeleaf和spring-boot-starter-web。
父pom管理了所有依赖jar包的版本,地址:
SpringBoot对thymeleaf做了很好的整合,隐藏了大部分细节,所以,我们只需要在Springboot的配置文件(一般是用application.properties)中加入以下配置即可:
这里,
spring.thymeleaf.cache是对页面不缓存,这样修改了模板文件,立即生效。
spring.thymeleaf.prefix指明了模板文件的地址
spring.thymeleaf.suffix 指明了模板文件后缀。
另外三个参数就不说了,顾名思义。
这里建了一个模板文件detail.html文件。乍一看,它和html没啥区别,其实区别真不大,只是里面有thymeleaf的标签。
里面的th:开头的都是thymeleaf的标签,如th:href、th:onclick、th:text等。
使用模板引擎,需要我们自己控制ModelAndView。这里的ModelAndView的viewName是detail,结合thymeleaf的配置,就是找spring.thymeleaf.prefix + viewName + spring.thymeleaf.suffix 指定的这个文件。
这里面,FQuestionInfo 是保存数据的一个实体,ResultModel是一个统一返回的实体,其实可以写成一个实体,都是作为返回数据的。
modelAndView使用addObject("data", retOk);将数据传递给viewName指定的模板文件,解析后返回一个html文件给浏览器。
页面如下:
详细完整的实体,可以访问品茗IT-博客《SpringBoot入门建站全系列(八)集成模板引擎(thymeleaf)渲染页面》
Spring组件化构建
喜欢这篇文章么,喜欢就加入我们一起讨论SpringBoot技术吧!
如果您觉得本文的内容对您的学习有所帮助:
关键字:
jquery