1.FreeMarker模板文件主要由如下4个部分组成: 
      1.1文本:直接输出的部分 
      1.2注释:<#-- ... -->格式部分,不会输出 
      1.3插值:即${...}或#{...}格式的部分,将使用数据模型中的部分替代输出 
      1.4FTL指令:FreeMarker指定,和HTML标记类似,名字前加#予以区分,不会输出

2.概要介绍四部分

最简单的模板是普通  HTML  文件(或者是其他任何文本文件—FreeMarker  本身不属于HTML)。当客户端访问页面时,FreeMarker 要发送 HTML 代码至客户端浏览器端显示。如果想要页面动起来,就要在 HTML 中放置能被 FreeMarker 所解析的特殊部分。

2.1 ${…}:FreeMarker 将会输出真实的值来替换花括号内的表达式,这样的表达式被称为interpolations 插值 .(EL表达式语法)

2.2 FTL tags 标签(FreeMarker  模板的语言标签):FTL 标签和 HTML 标签有一点相似,但是它们是FreeMarker 的指令而且是不会直接输出出来的东西。这些标签的使用一般以符号#开头。(用户自定义的 FTL 标签使用@符号来代替#)

2.3 Comments 注释:FreeMarker 的注释和 HTML 的注释相似,但是它用<#--和-->来分隔的。任何介于这两个分隔符(包含分隔符本身)之间内容会被 FreeMarker  忽略,就不会输出出来了。

2.4 其他任何不是 FTL  标签,插值或注释的内容将被视为静态文本,这些东西就不会被FreeMarker 所解析,会被按照原样输出出来。

 备注:

directives指令:就是所指的FTL  标签。这些指令在  HTML  的标签(如<table>和</table>)和 HTML 元素(如 table 元素)中的关系是相同的。(如果现在你还不能区分它们,那么把“FTL 标签”和“指令”看做是同义词即可。)

3.FreeMarker模板的例子

<html><br>
<head><br>
<title>Welcome!</title><br>
</head><br>
<body><br>
<#-- 注释部分 --><br>
<#-- 下面使用插值 -->
<h1>Welcome ${user} !</h1><br>
<p>We have these animals:<br>
<u1><br>
<#-- 使用FTL指令 -->
<#list animals as being><br> <li>${being.name} for ${being.price} Euros<br>
<#list><br>
<u1><br>
</body><br>
</html> 

转载于:https://www.cnblogs.com/kjitboy/p/5092374.html

FreeMarker模板文件的组成(2)相关推荐

  1. freemarker模板文件中文本域(textarea)的高度自适应实现

    2019独角兽企业重金招聘Python工程师标准>>> freemarker模板文件中实现文本域(textarea)的高度自适应实现. 从网上找的大部分办法中很多方法兼容性并不好,要 ...

  2. Aspose-words结合Freemarker实现word邮件合并功能,批量处理word模板文件

    最近的工作中有一个需求,需要处理word文档,有一些内容需要根据不同用户进行替换修改,使用的是word文档,替换后的内容还需要转换为pdf进行签章确认,并进行防篡改处理. 所以记录一下处理步骤,首先可 ...

  3. freemarker模板生成pdf文件

    文章目录 1.pom依赖 2.ftl模板以及宋体文件 2.1.文件路径 2.2.ftl文件模板(test.ftl) 3.controller生成pdf文件 1.pom依赖 <!--freemar ...

  4. freemarker 模板生成pdf文件并下载

    利用freemarker 模板生成pdf文件,通过浏览器直接下载或生成文件到指定目录 1.pom.xml文件 <!--引入Freemarker的依赖--> <dependency&g ...

  5. Java使用Freemarker通过模板文件导出PDF文件、横向显示

    前言: 尝试了不少通过模板文件导出pdf文件的方法,要么实现起来复杂,要么实现效果不理想,经过反复查找资料和尝试发现此方法是最理想的. 本博客又经大量网友实践及建议,经过几次完善修改,又日趋完善,在此 ...

  6. 自建html网页,幽灵自建的html5 的模板文件!

    *{ font-family:Source Code Pro,Microsoft YaHei; padding:0; margin:0; } .main{ width: 80%; height: 45 ...

  7. Spring发送基于freemarker模板的邮件

    在项目开发过程中,我们经常会遇到需要发送邮件的场景,比如:用户验证邮箱的时候,有活动通知或者提醒通知的时候--有些时候我们可能只需要发送一些简单文本内容即可,但是大多数情况下我们更希望邮件的内容是丰富 ...

  8. Freemarker模板---引擎学习

    一.简要概述 Freemarker是一款模板引擎,是一种基于模版生成静态文件的通用工具,它是使用纯java编写的,一般用来生成HTML页面. 这段时间学习的主要是嵌套freemarker中的取值表达式 ...

  9. Java之利用Freemarker模板引擎实现代码生成器,提高效率

    开心一笑 [1.你以为我会眼睁睁的看着你去送死?我会闭着眼睛.2.给你讲个故事,从前有个笨蛋,他非常笨,别人问他问题他只会回答"没有",这个故事你听过吗?] 视频教程 大家好,我录 ...

最新文章

  1. Xcode多Target设置
  2. 3.列表(一个打了激素的数组)
  3. PMCAFF | 为什么找一款CRM软件那么难?
  4. 国内有哪些自然语言处理(NLP)专业比较厉害的985高校?
  5. python操作excel表格写入多行和多列_python多处理:写入同一excel-fi
  6. 【编程练习】八大排序算法
  7. 单向链表的python实现
  8. markdown 常用语法格式
  9. mysqladvisor安装
  10. GP数据库(Greenplum)单机版安装
  11. outlook显示imap服务器已关闭,允许 Outlook Web App 中的最终用户查看 POP3、IMAP4 和 SMTP 服务器设置...
  12. Unity 游戏数据的存档读档,数据加密与解密
  13. 某finecms的csrf漏洞(CVE-2018-18191)
  14. 欢迎使用CSD 第三方士大夫胜多负少的N-markdown编辑器
  15. 记录下微信小程使用websokce的Bug
  16. pdf格式如何压缩大小?压缩pdf大小的方法?
  17. Android 双卡双待 资料
  18. 经纬度定义、经纬度格式、GDAL中地理坐标转换及地理坐标屏幕显示
  19. 抖音达人探店有用吗?算不算过时呢
  20. Java内存马简单实现

热门文章

  1. [Socket网络编程]一个封锁操作被对 WSACancelBlockingCall 的调用中断。
  2. Android的Intent Action 大全
  3. 发生TM锁争用的情况
  4. cannot write file to virtual machine aborting the file copy operation.
  5. Cannot resolve corresponding JNI function
  6. 【+】Linux Socket编程
  7. java反序列化漏洞实战
  8. Matlab subs函数的用法
  9. 冰与火之歌:「时间」与「空间」复杂度
  10. tf.contrib.slim add_arg_scope