博客
关于我
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/

    你可能感兴趣的文章
    NN&DL4.3 Getting your matrix dimensions right
    查看>>
    NN&DL4.8 What does this have to do with the brain?
    查看>>
    No 'Access-Control-Allow-Origin' header is present on the requested resource.
    查看>>
    No Datastore Session bound to thread, and configuration does not allow creation of non-transactional
    查看>>
    No fallbackFactory instance of type class com.ruoyi---SpringCloud Alibaba_若依微服务框架改造---工作笔记005
    查看>>
    No Feign Client for loadBalancing defined. Did you forget to include spring-cloud-starter-loadbalanc
    查看>>
    No mapping found for HTTP request with URI [/...] in DispatcherServlet with name ...的解决方法
    查看>>
    No module named cv2
    查看>>
    No module named tensorboard.main在安装tensorboardX的时候遇到的问题
    查看>>
    No module named ‘MySQLdb‘错误解决No module named ‘MySQLdb‘错误解决
    查看>>
    No new migrations found. Your system is up-to-date.
    查看>>
    No qualifying bean of type XXX found for dependency XXX.
    查看>>
    No resource identifier found for attribute 'srcCompat' in package的解决办法
    查看>>
    No toolchains found in the NDK toolchains folder for ABI with prefix: mips64el-linux-android
    查看>>
    NO.23 ZenTaoPHP目录结构
    查看>>
    NoClassDefFoundError: org/springframework/boot/context/properties/ConfigurationBeanFactoryMetadata
    查看>>
    Node JS: < 一> 初识Node JS
    查看>>
    Node-RED中使用JSON数据建立web网站
    查看>>
    Node-RED中使用node-red-browser-utils节点实现选择Windows操作系统中的文件并实现图片预览
    查看>>
    Node-RED中使用Notification元件显示警告讯息框(温度过高提示)
    查看>>