Class | Description |
---|---|
Break |
Break
java 中 break、continue 可出现在 for 中的最后一行,不一定要套在 if 中
|
Call |
Call 调用模板函数,两种用法:
1:常规调用
#@funcName(p1, p2, ..., pn)
2:安全调用,函数被定义才调用,否则跳过
#@funcName?(p1, p2, ..., pn)
注意:在函数名前面引入 '@' 字符是为了区分模板函数和指令
|
Continue |
Continue
|
Define |
Define 定义模板函数:
#define funcName(p1, p2, ..., pn)
body
#end
模板函数类型:
1:全局共享的模板函数
通过 engine.addSharedFunction(...) 添加,所有模板中可调用
2:模板中定义的局部模板函数
在模板中定义的模板函数,只在本模板中有效
高级用法:
1:局部模板函数可以与全局共享模板函数同名,调用时优先调用模板内模板数
2:模板内部不能定义同名的局部模板函数
|
Else |
Else
|
ElseIf |
ElseIf
|
For |
For 循环控制,支持 List、Map、数组、Collection、Iterator、Iterable
Enumeration、null 以及任意单个对象的迭代,简单说是支持所有对象迭代
主要用法:
1:#for(item : list) #(item) #end
2:#for(item : list) #(item) #else content #end
3:#for(i=0; i<9; i++) #(item) #end
4:#for(i=0; i<9; i++) #(item) #else content #end
|
ForEntry |
ForEntry 包装 HashMap、LinkedHashMap 等 Map 类型的 Entry 对象
|
ForIteratorStatus |
ForIteratorStatus
封装 #for( id : expr) 迭代语句状态,便于模板中获取
使用以下表达式可以模板中获取迭代状态:
for.size 被迭代集合元素数量,不支持 Iterator 与 Iterable
for.index 从 0 下始的下标
for.count 从 1 开始的计数器
for.first 是否第一个元素
for.last 是否最后一个元素
for.odd 是否第奇数个元素
for.even 是否第偶数个元素
for.outer 获取外层 for 对象,便于获取外层 for 循环状态
例如: for.outer.index
|
ForLoopStatus |
ForLoopStatus
封装 #for( init; cond; update) 循环的状态,便于模板中获取
如下表达式可从模板中获取循环状态:
for.index 从 0 下始的下标
for.count 从 1 开始的计数器
for.first 是否第一个元素
for.odd 是否第奇数个元素
for.even 是否第偶数个元素
for.outer 获取外层 for 对象,便于获取外层 for 循环状态
例如: for.outer.index
注意:比迭代型循环语句少支持两个状态取值表达式:for.size、for.last
|
If |
If
|
Include |
Include
1:父模板被缓存时,被 include 的模板会被间接缓存,无需关心缓存问题
2:同一个模板文件被多个父模板 include,所处的背景环境不同,例如各父模板中定义的模板函数不同
各父模板所处的相对路径不同,所以多个父模板不能共用一次 parse 出来的结果,而是在每个被include
的地方重新 parse
|
NullStat |
NullStat
|
Output |
Output 输出指令
用法:
1:#(value)
2:#(x = 1, y = 2, x + y)
3:#(seoTitle ?? 'JFinal 极速开发社区')
|
Return |
Return
通常用于 #define 指令内部,不支持返回值
|
Set |
Set 赋值,从内向外作用域查找变量,找到则替换变量值,否则在顶层作用域赋值
用法:
1:#set(k = v)
2:#set(k1 = v1, k2 = v2, ..., kn = vn)
3:#set(x = 1+2)
4:#set(x = 1+2, y = 3>4, ..., z = c ? a : b)
|
SetGlobal |
SetLocal 设置全局变量,全局作用域是指本次请求的整个 template
适用于极少数的在内层作用域中希望直接操作顶层作用域的场景
|
SetLocal |
SetLocal 设置局部变量
通常用于 #define #include 指令内部需要与外层作用域区分,以便于定义重用型模块的场景
也常用于 #for 循环内部的临时变量
|
Stat |
Stat
|
StatList |
StatList
|
Text |
Text 输出纯文本块以及使用 "#[[" 与 "]]#" 定义的原样输出块
|
Copyright © 2018. All rights reserved.