FreeMarer学习笔记转载.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
FreeMarer学习笔记转载

FreeMarker学习笔记转载 FreeMarker学习笔记 1. 模板+数据模型=输出 2. 数据模型 a) 类似目录的变量称为hashes,包含保存下级变量的唯一的查询名字,充当其它对象的容器,每个都关联唯一的查询名字 b) 类似文件的变量称为scalars,保存单值,有两种类型 i. 字符串:用引号括起,单引号or双引号 ii. 数字:不用引号 iii. 日期:可以是日期,时间或日期-时间 iv. 布尔值:true或false,通常在#if …标记中使用 v. 对scalars的访问从root开始,各部分用”.”分隔,如 animals.mouse.price c) 另外一种变量是sequences,和hashes类似,充当其它对象的容器,按次序访问,只是不使用变量名字,而使用数字索引,如animals[0].name,索引值从0开始 d) 通常每个变量具有上述的一种能力,但一个变量可以具有多种上述能力 e) 方法 i. ${avg(3,5,20)} ${avg(student.zhangyaang.age,student.situ.age)} f) 宏和变换器:用户自定义的指令(FTL标记) g) 节点:树形结构中的一个节点,常用于xml处理中 3. 模板 a) 文本:直接输出 b) ${…}:称为interpolations,FreeMarker会在输出时用实际值代替,或#{},只用于文本中 c) FTL标记:类似于HTML,为了与HTML区分,用#开始,有的以@开始,不会输出,区分大小写,FTL标记不能位于另一个FTL标记内部 d) 注释:#--和--,不会输出 e) 多余的空白字符会在模板输出时移除 f) 指令 i. 使用FTL标记引用指令,有三种FTL标记 1. 开始标记:#name prarm 2. 结束标记:/#name 3. 空内容指令标记:#name param / ii. 有两种类型的指令:预定义指令和用户定义指令,用户定义指令要用@替换# iii. FTL标记不能够交叉,应该正确嵌套 iv. 如果使用不存在的指令,FreeMarker会产生错误消息 v. , / 和指令间不允许有空白字符 g) 表达式 i. 字符串 1. 使用单引号或双引号限定 2. 特殊字符要转义 3. raw字符串,可以认为是文本,其中的$和{等不具有特殊含义,该类字符串在引号前面加r,如${r”${foo}”} ${r”c:\foo\bar”} ii. 数字 1. 直接输入,不需要引号 2. 精度数字使用”.”分隔,不能使用分组符号 3. 不支持科学计数法 4. 不能省略小数点前面的0 5. 数字8 ,+8 ,08和8.00 都是相同的 iii. 布尔值:true 和 false, 不使用引号 iv. 序列 1. 有逗号分隔的子变量列表,有方括号限定,如: #list [“winter”, ”spring”, ”summer”, ”autumn”] as x ${x} /#list 2. 列表的项目是表达式,如: [2+2, [1,2,3,4], ”whatnot”] 3. 可以使用数字范围定义数字序列,如: 2..5等同于[2,3,4,5] 注意:数字范围没有方括号 如:5..2 4. 散列(hash) 由逗号的键/值列表,有大括号限定,键和值之间用冒号分隔 {“name”:”zhangyang”,”age”:23} 键和值都是表达式,但键必须是字符串 v. 获取变量 1. 顶层变量:${variable}, 变量名只能是字母, 数字, 下划线, $, @ 和# 的组合, 不能以数字开头 2. 从散列中获取数据 a) school.student.name b) school.[“student”].name c) school[“student”][“name”] 说明:使用点语法,变量名有顶层变量一样的限制, 方括号语法没有该限制 3. 从序列获(sequences)得数据: 和散列的方括号语法一样, 只是方括号的表达式值必须是数字; 注意: 第一个项目的索引是0 4. 序列片段: 使用[startIndex..endIndex]语法, 从序列中获得片段(也是序列) 5. 特殊变量: FreeMarker内定义的变量, 使用 .variablenae 语法访问 vi. 字符串操作 1. Interpolation(或连接操作) a) 可以使用${..} 或#{..} 在文本部分插入表达式的值, 如${“Hello ${user}”} 等于 ${“Hello”+user} b) ${.

文档评论(0)

书是爱的奉献 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档