springboot整合模板引擎(类似jsp)

入门

一 freemarker使用步骤

1 导入freemarker的相关依赖

        
    org.springframework.boot        
    spring-boot-starter-freemarker        

2 配置相关的配置

Spring
freemarker:
    template-loader-path: classpath:/templates #配置ftl文件路径,配置了过后,以后的路径都是以该路径为根路径查找页面
    cache: false     #页面不加载缓存,即时更新,但是上线需要改为true
    charset: UTF-8
    content-type: text/html
    expose-request-attributes: true
    expose-session-attributes: true
    request-context-attribute: request
    suffix: .ftl

个人理解:在配置了这些配置过后,springboot默认使用freemarker模板,任何返回的字符串默认就是freemarker的url路径,并自动添加上后缀名ftl。

3 在配置的templates文件下创建.ftl文件


image.png

4 访问.ftl文件


image.png

比如访问templates文件下面的index.ftl就只需写index就行了,后缀在配置文件里面已经配置,根路径也有配置,所以直接访问文件名就可以了

二 thymeleaf(主推)

1 导入相关依赖

        
    org.springframework.boot        
    spring-boot-starter-thymeleaf        

2 配置相关配置文件

Spring:
thymeleaf:
    prefix: classpath:/templates/
    suffix: .html
    mode: HTML5
    encoding: UTF-8
    content-type: text/html
    cache: false

3 建立对应的模板存储文件夹


image.png

值得注意的是,这里创建了freemarker与thymeleaf两个文件进行区分,理论上可以同时使用两个模板,但是没有必要,选其中之一就行了。
问题:由于使用了两个模板,有点好奇springboot是如何判断使用那个模板的,难道是看返回路径下的文件是什么格式就采用什么方法吗?
还有就是需要注意的是使用thymeleaf定义模板文件的存放位置时需要在最后多添加一个 / ,而且它的属性名还叫prefix ,以下是指定同一模板文件路径的添加方式的区别(结果完全一样,但是配置方式有一点区别,注意属性名也不一样)。


image.png

你可能感兴趣的:(springboot整合模板引擎(类似jsp))