ftl

freemarker【FTL】常见语法大全

ぃ、小莉子 提交于 2020-03-21 06:55:42
FreeMarker的插值有如下两种类型:1,通用插值${expr};2,数字格式化插值:#{expr}或#{expr;format} ${book.name?if_exists } //用于判断如果存在,就输出这个值 ${book.name?default(‘xxx’)}//默认值xxx ${book.name!"xxx"}//默认值xxx ${book.date?string('yyyy-MM-dd')} //日期格式 ${book?string.number} 20 //三种不同的数字格式 ${book?string.currency}--<#-- $20.00 --> ${book?string.percent}—<#-- 20% --> <#assign foo=ture /> //声明变量,插入布尔值进行显示 ${foo?string("yes","no")} <#-- yes --> 大小比较符号使用需要注意:(xml的原因),可以用于比较数字和日期 使用lt、lte、gt和gte来替代<、<=、>和>= 也可以使用括号<#if (x>y)> 内置函数: 调用区别于属性的访问,使用?代替. 常见的一些内置函数 对于字符串 html-对字符串进行HTML编码 cap_first-使字符串第一个字母大写 lower_case-将字符串转换成小写 trim

springboot整合freemarker

倖福魔咒の 提交于 2020-03-18 18:21:49
前言 本篇文章主要介绍的是springboot整合freemarker填充ftl模板文件,生成新的文件(如html),以及freemarker的语法。 GitHub源码链接位于文章底部。 freemarker介绍 freemarker是一款模板引擎,它基于模板来生成文本输出。这里的文本包括但不限于html页面,word,各种源代码文本...... 工作原理 模板:就是一份已经写好了基本内容,有着固定格式的文档,其中空出或者用占 位符标识的内容,由使用者来填充,不同的使用者给出的数据是不同的。在模板 中的占位符,在模板运行时,由模板引擎来解析模板,并采用动态数据替换占位 符部分的内容。 freemarker的应用方向有两个,一是基于ftl文件,将内容填充到ftl文件中,就可以使用制作ftl模板的文本的方式进行访问和显示了,比如使用html文本制作了一个ftl模板,我们使用代码填充数据进ftl模板,那么我们就能以访问html的方式去打开这个文件了;另一种方式则是直接生成对应的文件,比如生成xxx.html的文件。 应用场景 : 淘宝中的商品数不胜数,在商品的详情页这一块,如果全都以真实的html页面显示,那么有多少个商品就得有多少个页面了,何况还有增删改的情况。所以使用一个固定的ftl模板,填充数据,这样一个文件就能显示无数个页面的内容了。 再比如一些政府单位的项目

SpringMVC源码阅读:拦截器

纵然是瞬间 提交于 2020-01-17 05:20:09
1.前言 SpringMVC是目前J2EE平台的主流Web框架,不熟悉的园友可以看 SpringMVC源码阅读入门 ,它交代了SpringMVC的基础知识和源码阅读的技巧 本文将通过源码(基于Spring4.3.7)分析,弄清楚SpringMVC如何完成视图解析的 2.源码分析 在 SpringMVC源码阅读:拦截器 分析 过doDispatch的运行过程,这里再分析一遍 回到DispatcherServlet类的doDispatch方法,看看doDispatch如何获取ModelAndView HandlerMapping根据request获得HandlerExecutionChain 根据HandlerExecutionChain获取HandlerAdapter HandlerAdapter根据request,response和HandlerExecutionChain调用handle方法返回ModelAndView 然后交由 processDispatchResult 处理 1023行检测从doDispatch方法运行到此是否有异常 1037行根据ModelAndView渲染视图 1259根据视图名称解析成View对象 1282行调用AbstractView的render方法进行渲染 点进去,这里以解析ftl做测试 301行创建包含动态值和静态属性的Map

FreeMarker---通过ftl导出word

社会主义新天地 提交于 2020-01-11 06:27:37
需求说明 继上次进行分页查询后,需要将这些查询出来的数据导出成word和Excel。 导出word的方式有很多种,这边使用FreeMarker来操作。 具体实现 1.目标数据 如图 2.word模板 如图 注意:如果需要排版的好看一些,最好在word中调整好样式。 3.转换ftl 将word的样式排版好后,将word另存为xml格式,之后将该文件的扩展名改成ftl格式,放置在项目的ftl文件夹下,如图: 4.引入freemarker 在pom.xml中引入freemarker: < !-- 引入freemarker - - > <dependency> <groupId>org.freemarker</groupId> <artifactId>freemarker</artifactId> <version>2.3.29</version> </dependency> 5.代码实现 WordUtils.java package com . yzpt . utils ; import java . io . BufferedWriter ; import java . io . File ; import java . io . FileInputStream ; import java . io . FileOutputStream ; import java . io .

深入浅出计算机组成原理学习笔记:SSD硬盘(下)-如何完成性能优化的KPI?(第47讲)

て烟熏妆下的殇ゞ 提交于 2019-11-28 15:52:44
一、引子 1、为什么Windows操作系统、用了SSD的系统盘,就不能用磁盘碎篇整理功能? 如果你平时用的是Windows电脑,你会发现,用了SSD的系统盘,就不能用磁盘碎片整理功能。这是因为,一旦主动去运行磁盘碎片整理功能,就会发生一次块的擦除, 对应块的寿命就少了一点点。这个SSD的擦除寿命的问题,不仅会影响像磁盘碎片整理这样的功能,其实也很影响我们的日常使用。 2、读多的场景 我们的操作系统上,并没有SSD硬盘上各个块纸目前已经擦写的情况和寿命,所以它对待SSD硬盘和普通的机械硬盘没有什么区别。 我们日常使用PC进行软件开发的时候,会先在硬盘上装上操作系统和常用软件,比如Office,或者工程师们会装上VS Code、WebStorm这样的集成开发环境。 这些软件所在的块,写入一次之后,就不太会擦除了,所以就只有读的需求。 3、写多的场景 一旦开始开发,我们就会不断添加新的代码文件,还会不断修改已经有的代码文件。因为SSD硬盘没有覆写(Override)的功能,所以,这个过程中,其实我们是在反复地写入新的文件,然后再把原来的文件标记成逻辑上删除的状态。等SSD里面空的块少了, 我们会用“垃圾回收”的方式,进行擦除。这样,我们的擦除会反复发现在这些用来存放数据的地方。 有一天,这些块的擦除次数到了,变成了坏块。但是,我们安装操作系统和软件的地方还没有坏

解决ftl中的生成文件时出现多余缩进占位问题

喜夏-厌秋 提交于 2019-11-26 13:58:37
今天在编写ftl生成文件时出现了一个模板中明明没有那个缩进占位符,却不管怎么修改生成文件都会多出占位符,以前也遇到过,今天又遇到了,所以小记一下避免后面有人遇到同样的坑。 看下面的图ftl里模板是这样写的,乍一看是不是没问题啊,为什么我生成出的文件在顶部会多出个缩进占位符呢????满脸黑人问号?百思不得骑姐? 最后我发现好几次都是因为ftl这个指定引起的,ftl顶头的<#if>标签不要在前面增加缩进或者空太多格,后面改下ftl就正常了。 改成如下图这样: 去除<#if>指定前面的缩进或者空格 预览出来的文件正常了,整个世界都美好了!!! 总结:后续再遇到ftl里多出缩进占位符,生成的文件与ftl的里内容不一致时, 我们就可以首先看看ftl里的指令前面是否有多余缩进或者空格,把指定前面的缩进或者多余空格去掉就可以了。 这个应该是freemarker的一个缺陷,不知道后续版本有没有改进,我用的版本是freemarker-2.3.20。 希望对你遇到同样的问题有帮助。 来源: https://blog.csdn.net/Melody_Susan/article/details/98879939