1.什么是freemarker: 

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

2.数据模型:

简单来说就是为模板准备的数据整体被称为数据模型

在视觉效果上, 数据模型可以是:

(root)

|

+-user = "xxxxx"

| +- Product

| +- name = "green mouse"

注意:
上面只是一个形象化显示;数据模型不是文本格式,它来自于Java对象。 对于Java程序员来说,源代码等)的通用工具。root就像一个有 getUser() 和 getProduct() 方法的Java对象, 也可以有 "user" 和"Products" 键值的Java Map对象。相似地,latestProduct 就像是 getName() 方法的Java对象。

3 序列,标量

(root)|+- animals|   ||   +- mouse|   |   |   |   |   +- size = "small"|   |   |   |   |   +- price = 50|   ||   +- elephant|   |   |   |   |   +- size = "large"|   |   |   |   |   +- price = 5000+- message = "It is a test"|+- misc+- fruits      
    |          +- (1st) = "orange"        
| +- (2nd) = "banana"

上图中的变量扮演目录的角色(比如 root, animalsmouseelephantpythonmisc) 被称为 hashes (哈希表或哈希,译者注)。存储单值的变量 (sizepricemessage 和 foo) 称为 scalars (标量),另外一种很重要的变量是 sequences (序列,)。 它们像哈希表那样存储子变量,但是子变量没有名字,它们只是列表中的项。 比如,在下面这个数据模型中, animals 和  misc.fruits就是序列。

4 基本指令

<#if condition> content </#if>

如果 condition 是false(布尔值),那么介于 <#if condition> 和 </#if> 标签中的内容会被略过。

   <#list sequence as 自定义变量>重复内容</#list>

重复内容 部分将会在给定的 sequence遍历时在每一项中重复, 从第一项开始,一个接着一个。在所有的重复中,  自定义变量 将持有当前遍历项的值。 这个变量仅存在于<#list ...> 和 </#list> 标签内。

sequence 可以是任意表达式, 比如我们可以列表显示示例数据模型中的水果,就像这样:<ul><#list misc.fruits as fruit> <li>${fruit}</#list></ul>

freemarker -基本概念相关推荐

  1. freemarker ftl模板_Web开发人员必会的模板引擎技术之Freemarker

    曾几何时,Web开发是个多么高大上的名字,程序猿们都以能搞定Web技术为荣,此时还没有前后端之说.然而随着互联网的发展,社会分工进一步细化,职业岗位也更加细分,慢慢开始有了前端攻城狮和后端攻城狮,技术 ...

  2. 强大的freemarker的介绍

    首先先来看看官方对freemarker的介绍: What is FreeMarker? FreeMarker is a "template engine"; a generic t ...

  3. Freemarker详细解释

    A概念 最经常使用的概念 1. scalars:存储单值 字符串:简单文本由单或双引號括起来. 数字:直接使用数值. 日期:通常从数据模型获得 布尔值:true或false,通常在<#if -& ...

  4. freemarker中运算符_如何在Web应用系统表示层开发中应用Velocity模板技术

    软件项目实训及课程设计指导--如何在Web应用系统表示层开发实现中应用Velocity模板技术 1.分离Web表示层的数据处理和展现逻辑的常见的应用技术 分离Web表示层的数据处理和展现逻辑是目前企业 ...

  5. FreeMarker使用记录

    为什么80%的码农都做不了架构师?>>>    gt是大于 lt是小于 FreeMarker的模板文件并不比HTML页面复杂多少,FreeMarker模板文件主要由如下4个部分组成: ...

  6. freemarker入门教程

    转载自http://demojava.iteye.com/blog/800204 以下内容全部是网上收集: FreeMarker的模板文件并不比HTML页面复杂多少,FreeMarker模板文件主要由 ...

  7. 一篇很全面的freemarker教程

    copy自http://demojava.iteye.com/blog/800204 以下内容全部是网上收集: FreeMarker的模板文件并不比HTML页面复杂多少,FreeMarker模板文件主 ...

  8. 一篇很全面的freemarker 前端web教程

    FreeMarker的模板文件并不比HTML页面复杂多少,FreeMarker模板文件主要由如下4个部分组成:  1,文本:直接输出的部分  2,注释:<#-- ... -->格式部分,不 ...

  9. FreeMarker 快速入门

    FreeMarker 快速入门 FreeMarker是一个很值得去学习的模版引擎.它是基于模板文件生成其他文本的通用工具.本章内容通过如何使用FreeMarker生成Html web 页面 和 代码自 ...

最新文章

  1. 模型树——就是回归树的分段常数预测修改为线性回归 对于非线性回归有较好的预测效果...
  2. 国际基因编辑科技发展报告
  3. 『全球化产品』应该要避开的几个坑
  4. 使用@Async实现异步调用
  5. MongoDB-pymongo
  6. ajax滚动条动态加载,下拉滚动条,动态加载ajax加载数据
  7. pyquery获取不到网页完整源代码_爬虫神器之PyQuery实用教程(二),50行代码爬取穷游网...
  8. SSM项目启动报错More than one fragment with the name [spring_web] was found. This is not legal with relativ
  9. [linux]单网卡绑定多个IP
  10. MySQL修改、删除存储过程和函数
  11. 机器学习流程及详细内容(4)
  12. n分频器 verilog_verilog 语言实现任意分频
  13. 数据库中“一对一”、“一对多”、“多对多”的判断方法
  14. 在内核中创建文件 filp_open/sys_open
  15. fastadmin 自定义按钮 btn-ajax 执行成功后 自动刷新
  16. aec Gain 公式
  17. TTE系统容错设计(2) ——COM/MON机制
  18. [安全测试报告]某米摄像头安全体验报告
  19. 最优化技术——单纯形法
  20. DTU配置工具-F2x16工具

热门文章

  1. 月赛 SX_ACM 惨痛教训
  2. bzoj 2245 [SDOI2011]工作安排【最小费用最大流】
  3. 2012年7月份第4周51Aspx源码发布详情
  4. html垂直边距,html – Styling Bootstrap的btn-group-justified,添加边距和垂直尺寸
  5. 如何安装php5.5,源码安装php5.5
  6. 寻宝机器人电路板焊接_专业维修淮安市KUKA库卡KRC2机器人回收{机器人调试}
  7. mysql 判断等于空字符串_mysql 判断null 和 空字符串
  8. 会话管理 轻量php框架_SpringSecurity+JWT权限管理训练营-1基于RBAC模型的权限管理系统...
  9. 用java解决约瑟夫循环问题_Java采用循环链表结构求解约瑟夫问题
  10. rocketmq删除topic_RocketMq 快速入门教程