| 类和说明 |
|---|
| Scope
Scope
1:顶层 scope.parent 为 null
2:scope.set(...)
|
| 类和说明 |
|---|
| Compressor
Compressor
压缩规则:
1:为追求性能极致只压缩模板中的静态文本内容,指令输出的内容不压缩,例如 #(blog.content) 输出的内容不会被压缩
由于模板静态内容会被缓存,所以只需压缩一次,性能被最大化
2:多个连续空格字符压缩为一个空格字符
3:空格字符与 '\n' 的组合,压缩为一个 separator 字符。
|
| Location
Location
生成异常发生的位置消息
|
| OutputDirectiveFactory
OutputDirectiveFactory
用于定制自定义输出指令,替换系统默认输出指令,满足个性化需求
用法:
1:定义 MyOutput
public class MyOutput extends Output {
public MyOutput(ExprList exprList) {
super(exprList);
}
public void exec(Env env, Scope scope, Writer writer) {
Object value = exprList.eval(scope);
if (value !
|
| Scope
Scope
1:顶层 scope.parent 为 null
2:scope.set(...)
|
| 类和说明 |
|---|
| ParaToken
ParaToken
|
| 类和说明 |
|---|
| Location
Location
生成异常发生的位置消息
|
| Scope
Scope
1:顶层 scope.parent 为 null
2:scope.set(...)
|
| 类和说明 |
|---|
| Scope
Scope
1:顶层 scope.parent 为 null
2:scope.set(...)
|
| 类和说明 |
|---|
| Compressor
Compressor
压缩规则:
1:为追求性能极致只压缩模板中的静态文本内容,指令输出的内容不压缩,例如 #(blog.content) 输出的内容不会被压缩
由于模板静态内容会被缓存,所以只需压缩一次,性能被最大化
2:多个连续空格字符压缩为一个空格字符
3:空格字符与 '\n' 的组合,压缩为一个 separator 字符。
|
| Ctrl
Ctrl
封装 AST 执行过程中的控制状态,避免使用 Scope.data 保存控制状态
从而污染用户空间数据,目前仅用于 nullSafe、break、continue、return 控制
未来可根据需求引入更多控制状态
|
| Location
Location
生成异常发生的位置消息
|
| OutputDirectiveFactory
OutputDirectiveFactory
用于定制自定义输出指令,替换系统默认输出指令,满足个性化需求
用法:
1:定义 MyOutput
public class MyOutput extends Output {
public MyOutput(ExprList exprList) {
super(exprList);
}
public void exec(Env env, Scope scope, Writer writer) {
Object value = exprList.eval(scope);
if (value !
|
| Scope
Scope
1:顶层 scope.parent 为 null
2:scope.set(...)
|
| 类和说明 |
|---|
| Location
Location
生成异常发生的位置消息
|
| Scope
Scope
1:顶层 scope.parent 为 null
2:scope.set(...)
|
Copyright © 2024. All rights reserved.