【计算机论文全套栏目提醒】:本文主要为网学会员提供“freemarker语法完整版 - 计算机理论”,希望对需要freemarker语法完整版 - 计算机理论网友有所帮助,学习一下!
最常用的概念1、 scalars:存储单值字符串:简单文本由单或双引号括起来。
数字:直接使用数值。
日期:通常从数据模型获得布尔值:true 或 false,通常在标记中使用2、 hashes:充当其它对象的容器,每个都关联一个唯一的查询名字具有一个唯一的查询名字和他包含的每个变量相关联。
3、 sequences:充当其它对象的容器,按次序访问使用数字和他包含的每个变量相关联。
索引值从 0 开始。
4、 集合变量:除了无法访问它的大小和不能使用索引来获得它的子变量:集合可以看作只能由指令使用的受限 sequences。
5、 方法:通过传递的参数进行计算,以新对象返回结果方法变量通常是基于给出的参数计算值在数据模型中定义。
6、 用户自定义 FTL 指令:宏和变换器7、 节点节点变量表示为树型结构中的一个节点,通常在 XML 处理中使用。
在模板里对 sequences 和 hashes 初始化sequences 1. “you””me””he” 2. 1..100 3. “Akey”:”Avalue”“Akey1”:”Avalue1”“Bkey”:”Bvalue”“Bkey1”:”Bvalue1” hashes “you”:”a””me”:”b””he”:”c”注释标志旧版本的 freemarker 采用的是 注释 方法sequences 内置方法sequencefirst返回 sequence 的第一个值前提条件 sequence 不能是 nullsequencelast 返回 sequence 最后一个值sequencereverse 反转 sequence 的值sequencesize 返回 sequence 的大小sequencesort 对 sequence 按里面的对象 toString的结果进行排序sequencesort_byvalue对 sequence 按里面的对象的属性 value 进行排序如: sequence 里面放入的是 10 个 user 对象,user 对象里面包含 nameage 等属性sequencesort_byname 表示所有的 user 按 user.name 进行排序hashes 内置方法hashkeys 返回 hash 里的所有 keys 返回结果类型 sequencehashvalues 返回 hash 里的所有 value 返回结果类型 sequence模板使用 FTL(freeMarker 模板语言)编写组成部分一、整体结构1、注释:,不会输出。
2、文本:直接输出。
3、interpolation:由 var 或 var 限定,由计算值代替输出。
4、FTL 标记二.表达式1、直接指定值:1-1、字符串:由双引号或单引号括起来的字符串,其中的特殊字符(如 等)需要转义。
1-2、raw 字符串:有一种特殊的字符串称为 raw 字符串,被认为是纯文本,其中的和等不具有特殊含义,该类字符串在引号前面加 r,下面是一个例子:r/datayear屏幕输出结果为:/datayear转义 含义序列 双引号u0022 单引号u0027 反斜杠u005Cn 换行u000Ar Return u000Dt Tab u0009b Backspace u0008f Form feed u000Cl 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、可以使用数字范围定义数字序列,不需要方括号限定,例如 2..5 等同于2 34 5,但是更有效率,可以定义反递增范围如:5..2。
1-6、散列hash1、由逗号分隔的键/值列表,由大括号限定,键和值之间用冒号分隔,如:key1:valu1key2:character string....2、键和值都是表达式,但是键必须是字符串。
2、获取变量:2-1、顶层变量:变量名变量名只能是字母、数字、下划线、、、 的组合,且不能以数字开头。
2-2、散列:有两种方法1、点语法:变量名字和顶层变量的名字受同样的限制2、方括号语法:变量名字无限制,可以是任意的表达式的结果book.author.namebook.author.namebookauthor.namebookauthorname以上是等价的。
2-3、序列:使用散列的方括号语法获取变量,方括号中的表达式结果必须为数字。
注意:第一个项目的索引为 0。
可以使用startindex..endindex语法获取序列片段。
2-4、特殊变量:FreeMarker 内定义变量,使用.variablename 语法访问。
3、字符串操作3-1、interpolation:使用或在文本部分插入表达式的值,例如:hellousernameusernameusernameusername也可以使用来获得同样的结果:hellousernameusernameusernameusername注意:只能用于文本部分而不能出现于标记内。
或都是错误的是正确的。
本例中 user.login 的值必须是布尔类型。
3-2、子串:举例说明:假如 user 的值为Big Joeuser0user4结果是:BJuser1..4结果是:ig J4、序列操作4-1、连接操作:可以使用来操作,例如:titleauthormonthday5、散列操作5-1、连接操作:可以使用来操作,如果有相同的 KEY,则右边的值会替代左边的值,例如:title:散列author:emmamonth:5day:5month:6结果 month 的值就是 6。
6、算术运算6-1、操作符:、-、、/、除号以外的其他操作符两边的数据,必须都是数字类型。
如果号操作符一边有一个字符型数据,会自动将另一边的数据转换为字符型数据,运算结果为字符型数据。
6-2、比较操作符:1、2、3、4、5、7、1-3 的操作符,两边的数据类型必须相同,否则会产生错误4-7 的操作符,对于日期和数字可以使用,字符串不可以使用。
注意:1、FreeMarker 是精确比较,所以x x X是不等的。
2、因为对 FTL 来说是开始和结束标记,所以,可以用两种方法来避免这种情况:一种是使用括号 gte6-3、逻辑操作符:只能用于布尔值,否则会出现错误。
and与运算or或运算not非运算6-4、内建函数:使用方法类似于访问散列的子变量,只是使用代替.例如:testupper_casehtml常用的内建函数列举如下:1、字符串使用:html:对字符串进行 HTML 编码cap_first:字符串第一个字母大写lower_first:字符串第一个字母小写upper_case:将字符串转换成大写trim:去掉字符前后的空白字符2、序列使用:size:获得序列中元素的数目3、数字使用:int:取得数字的整数部分7、操作符的优先顺序:后缀:subbarNamesubStringRange.mathodParams一元:expr、-expr、 not内建:乘法:、/、加法:、-关系: lt、lte、gt、gte相等:、、逻辑与: and逻辑或: or数字范围:..四、interpolation , :inperpolation 只能用于文本 有两种类型 通用 interpolation 及数字 interpolation1、通用 interpolation如expr1-1、插入字符串值:直接输出表达式结果。
1-2、插入数字值:根据缺省格式由 setting 指令设置将表达式结果转换成文本输出可以使用内建函数 string 来格式化单个 interpolation如:answeranswerstringanswerstring.numberanswerstring.currencyanswerstring.percent1-3、插入日期值:根据缺省格式由 setting 指令设置将表达式结果转换成文本输出可以使用内建函数 string 来格式化单个 interpolation如:lastupdatastringyyyy-MM-dd HH:mm:ss zzzzlastupdatastringEEEMMM d yy
上一篇:
开合螺母夹具三维造型毕业设计论文免费下载
下一篇:
男性增强术-龟头增大练习