• free marker /spring boot


    今天我们来学习一种新的网页模板 freemarker 

    认识free marker

    FreeMarker 是一款 模板引擎: 即一种基于模板和要改变的数据, 并用来生成输出文本(HTML网页,电子邮件,配置文件,源代码等)的通用工具。 它不是面向最终用户的,而是一个Java类库,是一款程序员可以嵌入他们所开发产品的组件。

    它的优点

    • freemarker模板中不能使用java代码,有利于严格的mvc分离
    • 性能比较好
    • 内置了丰富的功能,使用方便
    • 可以在servlet容器外使用,模板不会被编译成class,不占用PermGen空间(从jdk8开始使用元空间)
    • 宏定义,方便功能的封装

    springboot整合freemarker

    1.导入free marker相关的包 

    1. <dependency>
    2. <groupId>org.springframework.bootgroupId>
    3. <artifactId>spring-boot-starter-webartifactId>
    4. dependency>
    5. <dependency>
    6. <groupId>org.springframework.bootgroupId>
    7. <artifactId>spring-boot-starter-freemarkerartifactId>
    8. dependency>

    2. 导入相关配置application.properties

    1. # ------------------------freemarker B --------------------------
    2. # 是否允许HttpServletRequest属性覆盖(隐藏)控制器生成的同名模型属性。
    3. spring.freemarker.allow-request-override=false
    4. # 是否允许HttpSession属性覆盖(隐藏)控制器生成的同名模型属性。
    5. spring.freemarker.allow-session-override=false
    6. # 是否启用模板缓存。
    7. spring.freemarker.cache=false
    8. # 模板编码。
    9. spring.freemarker.charset=UTF-8
    10. # 是否检查模板位置是否存在。
    11. spring.freemarker.check-template-location=true
    12. # Content-Type value.
    13. spring.freemarker.content-type=text/html
    14. # 是否启用freemarker
    15. spring.freemarker.enabled=true
    16. # 设定所有request的属性在merge到模板的时候,是否要都添加到model中.
    17. spring.freemarker.expose-request-attributes=false
    18. # 是否在merge模板的时候,将HttpSession属性都添加到model中
    19. spring.freemarker.expose-session-attributes=false
    20. # 设定是否以springMacroRequestContext的形式暴露RequestContext给Spring’s macro library使用
    21. spring.freemarker.expose-spring-macro-helpers=true
    22. # 是否优先从文件系统加载template,以支持热加载,默认为true
    23. spring.freemarker.prefer-file-system-access=true
    24. # 设定模板的后缀.
    25. spring.freemarker.suffix=.ftl
    26. # 设定模板的加载路径,多个以逗号分隔,默认:
    27. spring.freemarker.template-loader-path=classpath:/templates/
    28. # 设定FreeMarker keys.
    29. spring.freemarker.settings.template_update_delay=0
  • 相关阅读:
    解决问题:请使用golang编写代码实现一个简易的区块链,包含如何创建区块、如何加密哈希、如何链接区块等功能?
    动态内存管理(malloc calloc realloc free)--- C语言
    JAVAWeb--会话_过滤器_监听器
    海外代理ip有什么作用,使用场景是什么?
    HellaSwag数据集分享
    【无标题】
    Seata源码分析——SessionManager
    来自小魔推的八大优势应用场景,这些你都了解吗?
    更快,更强的.NET 7 发布了
    使用rpm重新安装包
  • 原文地址:https://blog.csdn.net/weixin_67150631/article/details/127840284