开源模版引擎FreeMarker的介绍与实践
chenjinkai
贡献于2013-06-04
3882
0
0
开源模版引擎FreeMarker的介绍与实践
下载需要
8
金币
[ 金币充值 ]
服务器/托管费、人工审核、技术维护等都需要很多费用,请您支持深度开源的发展
下载PPT
标签:
FreeMarker
模板引擎
HTML
Java
Scala
PPT 内容
1. 开源模版引擎FreeMarker ----功能简介及应用实践
2. 基本功能实战演练 主要内容介绍什么是FreeMarker 介绍模版的基本数据类型 介绍模版的定义结构 介绍模版表达式的相关内容 介绍模版代码复用 介绍如何构建模版的数据源以及一个简单的例子程序Table宏定义 Email指令
3. 什么是FreeMarker?HTMLWMLXMLJava其他ViewModelControl
4. FreeMarker的数据类型Subroutines Method:对应Java的反射对象 【TemplateMethodModel 子类,由程序员实现其功能】 Function/Macro:实现自定义的指令标签,类似一段可重用的标签片段 <@mydirective parameters>... @mydirective> Scalars String:单、双引号括起来的部分 Number:各种类型的数字都支持 Boolean:不带引号的true/false Date:支持各种时间类型,不过格式需要在模版或程序中定制 Containers Hash Sequence:数组,其中的元素类型不必相同,可以通过索引访问 Collection:只读的数组,不能通过索引访问,也不知道数组长度,只能用list命令遍历,貌似迭代器 Miscellaneous Node:可以用于生成tree结构的数据,主要用于处理XML文件
5. FreeMarker的基本数据类型
6. FreeMarker的Missing Valueunsafe_expr!default_expr unsafe_expr! (unsafe_expr)!default_expr (unsafe_expr)! MissingValue测试语法,用两个问号,该表达式会返回一个bool值,unsafe_expr?? or (unsafe_expr)??
7. 模版的控制结构模版执行的顺序为自上而下、顺序执行<#if condition> ... <#elseif condition2> ... <#else> ... #if> <#switch value> <#case refValue1> ... <#break> <#case refValueN> ... <#break> <#default> ... #switch> 遗憾:没有三元运算符<#list sequence as item> ... #list> <#assign seq = ["winter", "spring", "summer", "autumn"]> <#list seq as x> ${x_index + 1}. ${x} <#if x_has_next>,#if> #list> 顺序分支循环
8. Template结构TextFTL tagsComments Interpolation 直接print到输出的内容在Ouput中,该部分将被表达式的值所替代 Interploation用${expression}或#{expr}来表示类似于HTML注释 所有注释将被FreeMarker忽略,不会放到输出中去类似于HTML标签的作用 仅用来指示FreeMarker进行某些动作
9. FreeMarker运算符优先级Operator groupOperatorshighest precedence operators[subvarName] [subStringRange] . ? (methodParams) expr!expr??unary prefix operators+expr -expr !exprmultiplicative* / %additive+ -relational< > <= >= (and quivalents: gt, lt, etc.)equality== != (and equivalents: =)logical AND&&logical OR||numerical range..
10. (本页无文本内容)
11. 模版代码的复用Include 可以在一个模版中插入另一个模版的内容 被包含的模版与包含模版共享同样的变量的namespaceMacro 类似于定义一段可重用的模版片段,通过<@macroName> @macorName>来调用 使用前需要import,与调用模版处于不同的namespace中 Macro中可以直接输出Text Macro没有返回值,<#return>只起到控制流程的作用Function 功能和用法与Macro类似 不能在Function定义的内部产生任何输出 返回时必须带返回值,没有返回值也得return一个空
12. FreeMarker数据源JavaBeans定义了getter/setter的java类ScalarsBoolean,Number,StringDateContainersTemplateHashModel TemplateSequenceModel TemplateCollectionModel MethodsTemplateMethodModel ,类似于function root.put("indexOf", new MethodExample()); ${indexOf("met", x)}DirectivesTemplateDirectiveModel,类似于macro
13. FreeMarker table宏定义
14. FreeMarker table宏实例
15. Dzh FreeMarker
16. FreeMarker email指令定义
17. FreeMarker email指令实例
18. 多谢各位捧场!
PPT 图集
相关PPT
开源模版引擎FreeMarker的介绍与实践
Hadoop 介绍与实践
Drools规则引擎介绍
ActiveMQ 相关介绍及实践
FreeMarker 学习分享
Docker技术与实践
hadoop原理与实践01_v1.0
Velocity模板介绍
Velocity 模板介绍
Velocity 模板介绍