博客
关于我
FreeMarker开发总结
阅读量:557 次
发布时间:2019-03-09

本文共 1525 字,大约阅读时间需要 5 分钟。

FreeMarker技术总结

FreeMarker的定义

FreeMarker 是一个基于Java的免费开源模板引擎,专注于文本模板输出,提供丰富的表达式支持和自定义功能。它能够将后端准备好的数据通过模板引擎的表达式在前端页面展示,常用于生成复杂样式的HTML网页或导出Excel文件。

FreeMarker的工作原理

FreeMarker 的工作原理简单明了。它通过模板文件定义数据的呈现方式,将后端数据与模板结合,生成最终的输出文件。用户可以通过定义丰富的表达式来实现对数据的格式化和布局设计。

Spring Boot项目中的FreeMarker配置

在Spring Boot项目中使用FreeMarker进行渲染,需要完成以下几个步骤:

  • 在项目的 pom.xml 中添加FreeMarker的依赖età
  • org.springframework.boot
    spring-boot-starter-freemarker
    1. 在 application.properties 文件中配置FreeMarker的相关设置:
    2. spring.freemarker.cache=falsespring.freemarker.suffix=.ftlspring.freemarker.template-loader-path=classpath:/templatesspring.freemarker.content-type=text/html; charset=utf-8spring.freemarker.settings=number_format=0

      常用FreeMarker方法

      在实际使用过程中,FreeMarker 提供了丰富的表达式和标签,可以帮助开发者高效实现数据的显示和格式化。以下是一些常用的方法示例:

    3. 获取元素值
    4. <#if msg?="">    <# ridiculer_gmtLegend>        ${msg}    
      1. 获取Map中的值
      2. ${map["name"]}
        1. 循环输出List数据
        2. <#if students?exists and students?size gt 0>    <#list students as student>        ${student.name} - ${student.age} - ${student.sex}    
          1. 条件判断
          2. <#if type == 1>    类型:1
            <#elseif type == 2> 类型:2
            <#else> 类型:其它
            1. 获取Session中的值
            2. <#if Session["userId"]?exists>    用户ID:${Session["userId"]}
              1. 格式化时间
              2. // 输出时间格式为:2020-05-09 13:59:32${createTime?string('yyyy-MM-dd hh:mm:ss')}
                1. 导入公共模板
                2. <#include "right.ftl"/>

                  常见问题与注意事项

                3. 空错误处理:FreeMarker 在表达式中遇到空值时会报错,因此在使用时需要先进行空判断。
                4. 缓存问题:默认情况下,FreeMarker 会缓存模板渲染结果,建议在开发环境中关闭缓存。
                5. 数据格式化:需要谨慎处理大数值的格式化,避免出现不可预期的显示结果。
                6. 通过以上方法和配置,可以充分发挥FreeMarker 的强大功能,在项目开发中提高效率和代码质量。

    转载地址:http://btdpz.baihongyu.com/

    你可能感兴趣的文章
    netfilter应用场景
    查看>>
    netlink2.6.32内核实现源码
    查看>>
    Netpas:不一样的SD-WAN+ 保障网络通讯品质
    查看>>
    NetScaler的常用配置
    查看>>
    netsh advfirewall
    查看>>
    NETSH WINSOCK RESET这条命令的含义和作用?
    查看>>
    Netty WebSocket客户端
    查看>>
    netty 主要组件+黏包半包+rpc框架+源码透析
    查看>>
    Netty 异步任务调度与异步线程池
    查看>>
    Netty中集成Protobuf实现Java对象数据传递
    查看>>
    Netty事件注册机制深入解析
    查看>>
    Netty原理分析及实战(四)-客户端与服务端双向通信
    查看>>
    Netty客户端断线重连实现及问题思考
    查看>>
    Netty工作笔记0006---NIO的Buffer说明
    查看>>
    Netty工作笔记0007---NIO的三大核心组件关系
    查看>>
    Netty工作笔记0011---Channel应用案例2
    查看>>
    Netty工作笔记0013---Channel应用案例4Copy图片
    查看>>
    Netty工作笔记0014---Buffer类型化和只读
    查看>>
    Netty工作笔记0020---Selectionkey在NIO体系
    查看>>
    Vue踩坑笔记 - 关于vue静态资源引入的问题
    查看>>