- 1、本文档共13页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
freemarker全攻略
freemarker全攻略,包括语法和常见用法,入门绝对棒
FreeMarker模板包含FreeMarker的指令的文件就称为模板(Template)。模板设计者不关心数据从那儿来,只知道使用已经建立的数据模型。数据模型由程序员编程来创建,向模板提供变化的信息,这些信息来自于数据库、文件,甚至于在程序中直接生成。 数据类型:一、基本:
1、scalars:存储单值
字符串:简单文本由单或双引号括起来。数字:直接使用数值。日期:通常从数据模型获得布尔值:true或false,通常在#if …标记中使用2、hashes:充当其它对象的容器,每个都关联一个唯一的查询名字具有一个唯一的查询名字和他包含的每个变量相关联。3、sequences:充当其它对象的容器,按次序访问使用数字和他包含的每个变量相关联。索引值从0开始。4、集合变量:除了无法访问它的大小和不能使用索引来获得它的子变量:集合可以看作只能由#list...指令使用的受限sequences。5、方法:通过传递的参数进行计算,以新对象返回结果方法变量通常是基于给出的参数计算值在数据模型中定义。6、用户自定义FTL指令:宏和变换器7、节点节点变量表示为树型结构中的一个节点,通常在XML处理中使用。模板:使用FTL(freeMarker模板语言)编写
组成部分一、整体结构
1、注释:#--注释内容--,不会输出。2、文本:直接输出。3、interpolation:由 ${var} 或 #{var} 限定,由计算值代替输出。4、FTL标记
二、指令:
freemarker指令有两种:1、预定义指令:引用方式为#指令名称2、用户定义指令:引用方式为@指令名称,引用用户定义指令时须将#换为@。注意:如果使用不存在的指令,FreeMarker不会使用模板输出,而是产生一个错误消息。freemarker指令由FTL标记来引用,FTL标记和HTML标记类似,名字前加#来加以区分。如HTML标记的形式为h1/h1则FTL标记的形式是#list/#list(此处h1标记和list指令没有任何功能上的对应关系,只是做为说明使用一下)。有三种FTL标记:1)、开始标记:#指令名称2)、结束标记:/#指令名称3)、空标记:#指令名称/注意:1) FTL会忽略标记之中的空格,但是,#和指令 与 /#和指令 之间不能有空格。2) FTL标记不能够交叉,必须合理嵌套。每个开始标记对应一个结束标记,层层嵌套。 如:#listli${数据}#if 变量pgame over!/p/#if/li/#list注意事项:1)、FTL对大小写敏感。所以使用的标记及interpolation要注意大小写。name与NAME就是不同的对象。#list是正确的标记,而#List则不是。2)、interpolation只能在文本部分使用,不能位于FTL标记内。如#if ${var}是错误的,正确的方法是:#if var,而且此处var必须为布尔值。3)、FTL标记不能位于另一个FTL标记内部,注释例外。注释可以位于标记及interpolation内部。
三、表达式
1、直接指定值:
1-1、字符串:由双引号或单引号括起来的字符串,其中的特殊字符(如 \等)需要转义。1-2、raw字符串:有一种特殊的字符串称为raw字符串,被认为是纯文本,其中的\和{等不具有特殊含义,该类字符串在引号前面加r,下面是一个例子:${r/${data}year}屏幕输出结果为:/${data}year转义 含义序列 \ 双引号(u0022) \ 单引号(u0027) \\ 反斜杠(u005C) \n 换行(u000A) \r Return (u000D) \t Tab (u0009) \b Backspace (u0008) \f Form feed (u000C) \l \g \a \{ { \xCode 4位16进制Unicode代码 1-3、数字:直接输入,不需要引号 1)、精度数字使用“.”分隔,不能使用分组符号 2)、目前版本不支持科学计数法,所以“1E3”是错误的 3)、不能省略小数点前面的0,所以“.5”是错误的 4)、数字8、+8、08和8.00都是相同的 1-4、布尔值:true和false,不使用引号1-5、序列:由逗号分隔的子变量列表,由[]方括号限定。1)、子变量列表可以是表达式2)、可以使用数字范围定义数字序列,b不需要方括号限定/b,例如2..5等同于[2, 3, 4, 5],但
您可能关注的文档
最近下载
- 丽声指南针英语名著分级读物Little Red Riding Hood小红帽 教学设计.docx
- 中华人民共和国第十四届运动会游泳比赛成绩册(编排系统版).pdf
- 数字温度计设计论文分析.doc
- 国开(河北)2024年《中外政治思想史》形成性考核1-4答案.docx
- 陕西中考数学第二轮复习策略讲座.ppt
- 东北三省四城市联考暨沈阳市高三质量监测(二)英语含答案解析.docx
- 中国肝癌规范诊疗质量控制指标(2022版).pptx
- 部编人教版八年级下册语文期中考试试卷及答案.docx VIP
- 山东省青岛市市南区2022-2023学年八年级下学期期末物理试卷(含答案).docx VIP
- 财务年度审计服务项目公开招投标书范本.doc VIP
文档评论(0)