模板引擎
1、什么是模板引擎
根据前边的数据模型分析,课程预览就是把课程的相关信息进行整合,在课程预览界面进行展示,课程预览界面与课程发布的课程详情界面一致,保证了教学机构人员发布前看到什么样,发布后也会看到什么样。
项目采用模板引擎技术实现课程预览界面。什么是模板引擎?
早期我们采用的jsp技术就是一种模板引擎技术,如下图:
1、浏览器请求web服务器
2、服务器渲染页面,渲染的过程就是向jsp页面(模板)内填充数据(模型)。
3、服务器将渲染生成的页面返回给浏览器。
所以模板引擎就是:模板+数据=输出,Jsp页面就是模板,页面中嵌入的jsp标签就是数据,两者相结合输出html网页。
常用的java模板引擎还有哪些?
Jsp、Freemarker、Thymeleaf 、Velocity 等。
本项目采用Freemarker作为模板引擎技术。
Freemarker官方地址:http://freemarker.foofun.cn/
FreeMarker 是一款 模板引擎: 即一种基于模板和要改变的数据, 并用来生成输出文本(HTML网页,电子邮件,配置文件,源代码等)的通用工具。 它不是面向最终用户的,而是一个Java类库,是一款程序员可以嵌入他们所开发产品的组件。FreeMarker 是 免费的, 基于Apache许可证2.0版本发布。
2. Freemarker快速入门
下边在内容管理接口层搭建Freemarker的运行环境并进行测试。
在内容管理接口工层 添加Freemarker与SpringBoot的整合包
XML <!-- Spring Boot 对结果视图 Freemarker 集成 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-freemarker</artifactId> </dependency> |
我下班是在nacos进行配置的,你们可以在本地进行配置
在nacos为内容管理接口层配置freemarker,新加一个freemarker-config-dev.yaml
配置信息如下:
YAML |
在内容管理接口工程添加freemarker-config-dev.yaml
添加模板,在resources下创建templates目录,添加test.ftl模板文件
HTML <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Hello World!</title> </head> <body> Hello ${name}! </body> </html> |
编写controller方法,准备模型数据
Java package com.xuecheng.content.api; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.servlet.ModelAndView; /** * @program: xuecheng-plus-project148 * @description: freemarker测试 * @author: Mr.Zhang * @create: 2023-03-07 09:55 **/ @Controller //因为freemarker返回页面不是json这里使用@Controller public class FreemarkerController { @GetMapping("/testfreemarker") public ModelAndView test() { ModelAndView modelAndView = new ModelAndView(); //设置模型数据 modelAndView.addObject("name","小明"); //设置视图的名称,就是模板文件的名称(去掉扩展名) modelAndView.setViewName("test"); return modelAndView; } } |
启动内容管理接口工程,访问http://localhost:63040/content/testfreemarker
屏幕输出:Hello 小明!
freemarker提供很多指令用于解析各种类型的数据模型,参考地址:http://freemarker.foofun.cn/ref_directives.html