freemarker -基本概念
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"
上图中的变量扮演目录的角色(比如 root, animals
, mouse
, elephant
, python
, misc
) 被称为 hashes (哈希表或哈希,译者注)。存储单值的变量 (size
, price
, message
和 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 -基本概念相关推荐
- freemarker ftl模板_Web开发人员必会的模板引擎技术之Freemarker
曾几何时,Web开发是个多么高大上的名字,程序猿们都以能搞定Web技术为荣,此时还没有前后端之说.然而随着互联网的发展,社会分工进一步细化,职业岗位也更加细分,慢慢开始有了前端攻城狮和后端攻城狮,技术 ...
- 强大的freemarker的介绍
首先先来看看官方对freemarker的介绍: What is FreeMarker? FreeMarker is a "template engine"; a generic t ...
- Freemarker详细解释
A概念 最经常使用的概念 1. scalars:存储单值 字符串:简单文本由单或双引號括起来. 数字:直接使用数值. 日期:通常从数据模型获得 布尔值:true或false,通常在<#if -& ...
- freemarker中运算符_如何在Web应用系统表示层开发中应用Velocity模板技术
软件项目实训及课程设计指导--如何在Web应用系统表示层开发实现中应用Velocity模板技术 1.分离Web表示层的数据处理和展现逻辑的常见的应用技术 分离Web表示层的数据处理和展现逻辑是目前企业 ...
- FreeMarker使用记录
为什么80%的码农都做不了架构师?>>> gt是大于 lt是小于 FreeMarker的模板文件并不比HTML页面复杂多少,FreeMarker模板文件主要由如下4个部分组成: ...
- freemarker入门教程
转载自http://demojava.iteye.com/blog/800204 以下内容全部是网上收集: FreeMarker的模板文件并不比HTML页面复杂多少,FreeMarker模板文件主要由 ...
- 一篇很全面的freemarker教程
copy自http://demojava.iteye.com/blog/800204 以下内容全部是网上收集: FreeMarker的模板文件并不比HTML页面复杂多少,FreeMarker模板文件主 ...
- 一篇很全面的freemarker 前端web教程
FreeMarker的模板文件并不比HTML页面复杂多少,FreeMarker模板文件主要由如下4个部分组成: 1,文本:直接输出的部分 2,注释:<#-- ... -->格式部分,不 ...
- FreeMarker 快速入门
FreeMarker 快速入门 FreeMarker是一个很值得去学习的模版引擎.它是基于模板文件生成其他文本的通用工具.本章内容通过如何使用FreeMarker生成Html web 页面 和 代码自 ...
最新文章
- 模型树——就是回归树的分段常数预测修改为线性回归 对于非线性回归有较好的预测效果...
- 国际基因编辑科技发展报告
- 『全球化产品』应该要避开的几个坑
- 使用@Async实现异步调用
- MongoDB-pymongo
- ajax滚动条动态加载,下拉滚动条,动态加载ajax加载数据
- pyquery获取不到网页完整源代码_爬虫神器之PyQuery实用教程(二),50行代码爬取穷游网...
- SSM项目启动报错More than one fragment with the name [spring_web] was found. This is not legal with relativ
- [linux]单网卡绑定多个IP
- MySQL修改、删除存储过程和函数
- 机器学习流程及详细内容(4)
- n分频器 verilog_verilog 语言实现任意分频
- 数据库中“一对一”、“一对多”、“多对多”的判断方法
- 在内核中创建文件 filp_open/sys_open
- fastadmin 自定义按钮 btn-ajax 执行成功后 自动刷新
- aec Gain 公式
- TTE系统容错设计(2) ——COM/MON机制
- [安全测试报告]某米摄像头安全体验报告
- 最优化技术——单纯形法
- DTU配置工具-F2x16工具
热门文章
- 月赛 SX_ACM 惨痛教训
- bzoj 2245 [SDOI2011]工作安排【最小费用最大流】
- 2012年7月份第4周51Aspx源码发布详情
- html垂直边距,html – Styling Bootstrap的btn-group-justified,添加边距和垂直尺寸
- 如何安装php5.5,源码安装php5.5
- 寻宝机器人电路板焊接_专业维修淮安市KUKA库卡KRC2机器人回收{机器人调试}
- mysql 判断等于空字符串_mysql 判断null 和 空字符串
- 会话管理 轻量php框架_SpringSecurity+JWT权限管理训练营-1基于RBAC模型的权限管理系统...
- 用java解决约瑟夫循环问题_Java采用循环链表结构求解约瑟夫问题
- rocketmq删除topic_RocketMq 快速入门教程