| 程序包 | 说明 |
|---|---|
| com.jfinal.kit | |
| com.jfinal.template | |
| com.jfinal.template.ext.spring |
| 限定符和类型 | 方法和说明 |
|---|---|
static Engine |
ElKit.getEngine() |
| 限定符和类型 | 方法和说明 |
|---|---|
Engine |
Engine.addDirective(String directiveName,
Class<? extends Directive> directiveClass)
添加自定义指令,keepLineBlank 使用默认值
|
Engine |
Engine.addDirective(String directiveName,
Class<? extends Directive> directiveClass,
boolean keepLineBlank)
添加自定义指令
建议添加自定义指令时明确指定 keepLineBlank 变量值,其规则如下:
1:keepLineBlank 为 true 时, 该指令所在行的前后空白字符以及末尾字符 '\n' 将会被保留
一般用于具有输出值的指令,例如 #date、#para 等指令
2:keepLineBlank 为 false 时,该指令所在行的前后空白字符以及末尾字符 '\n' 将会被删除
一般用于没有输出值的指令,例如 #for、#if、#else、#end 这种性质的指令
示例:
addDirective("now", NowDirective.class, true)
|
Engine |
Engine.addEnum(Class<? extends Enum<?>> enumClass)
添加枚举类型,便于在模板中使用
例子:
1:定义枚举类型
public enum UserType {
ADMIN,
USER;
public String hello() {
return "hello";
}
}
2:配置
engine.addEnum(UserType.class);
3:模板中使用
### 以下的对象 u 通过 Controller 中的 setAttr("u", UserType.ADMIN) 传递
#if( u == UserType.ADMIN )
#(UserType.ADMIN)
#(UserType.ADMIN.name())
#(UserType.ADMIN.hello())
#end
|
Engine |
Engine.addSharedFunction(ISource source)
Add shared function by ISource
|
Engine |
Engine.addSharedFunction(String... fileNames)
Add shared function by files
|
Engine |
Engine.addSharedFunction(String fileName)
Add shared function by file
|
Engine |
Engine.addSharedFunctionByString(String content)
Add shared function by string content
|
Engine |
Engine.addSharedMethod(Class<?> sharedMethodFromClass)
Add shared method from class
|
Engine |
Engine.addSharedMethod(Object sharedMethodFromObject)
Add shared method from object
|
Engine |
Engine.addSharedObject(String name,
Object object)
Add shared object
|
Engine |
Engine.addSharedStaticMethod(Class<?> sharedStaticMethodFromClass)
Add shared static method of Class
|
static Engine |
Engine.create(String engineName)
Create engine with engine name managed by JFinal
|
static Engine |
Engine.create(String engineName,
Consumer<Engine> e)
Create engine with engine name managed by JFinal
Example:
Engine engine = Engine.create("myEngine", e -> {
e.setDevMode(true);
e.setToClassPathSourceFactory();
});
engine.getTemplate("template.html").render(System.out);
>
|
static Engine |
Engine.createIfAbsent(String engineName,
Consumer<Engine> e)
Create engine if absent with engine name managed by JFinal
Example:
Engine engine = Engine.createIfAbsent("myEngine", e -> {
e.setDevMode(true);
e.setToClassPathSourceFactory();
});
engine.getTemplate("template.html").render(System.out);
>
|
static Engine |
Engine.remove(String engineName)
Remove engine with engine name managed by JFinal
|
Engine |
Engine.removeDirective(String directiveName)
Remove directive
|
Engine |
Engine.removeSharedMethod(Class<?> clazz)
Remove shared Method of the Class
|
Engine |
Engine.removeSharedMethod(Method method)
Remove shared Method
|
Engine |
Engine.removeSharedMethod(String methodName)
Remove shared Method by method name
|
Engine |
Engine.removeSharedMethod(String methodName,
Class<?>... paraTypes)
Remove shared Method
|
Engine |
Engine.removeSharedObject(String name) |
Engine |
Engine.setBaseTemplatePath(String baseTemplatePath) |
Engine |
Engine.setBufferSize(int bufferSize) |
Engine |
Engine.setCacheStringTemplate(boolean cacheStringTemplate)
配置是否缓存字符串模板,也即是否缓存通过 getTemplateByString(String content)
方法获取的模板,默认配置为 false
|
Engine |
Engine.setCompressor(Compressor compressor)
配置 Compressor 可对模板中的静态内容进行压缩
可通过该方法配置自定义的 Compressor 来代替系统默认实现,例如:
engine.setCompressor(new MyCompressor());
|
Engine |
Engine.setCompressorOn()
设置开启压缩功能。
|
Engine |
Engine.setCompressorOn(char separator)
设置开启压缩功能
|
Engine |
Engine.setDatePattern(String datePattern) |
Engine |
Engine.setDevMode(boolean devMode)
设置 true 为开发模式,支持模板文件热加载
设置 false 为生产模式,不支持模板文件热加载,以达到更高的性能
|
Engine |
Engine.setEncoderFactory(EncoderFactory encoderFactory)
Enjoy 模板引擎对 UTF-8 的 encoding 做过性能优化,某些罕见字符
无法被编码,可以配置为 JdkEncoderFactory 解决问题:
engine.setEncoderFactory(new JdkEncoderFactory());
|
Engine |
Engine.setEncoding(String encoding) |
Engine |
Engine.setOutputDirectiveFactory(OutputDirectiveFactory outputDirectiveFactory)
Set output directive factory
|
Engine |
Engine.setReentrantBufferSize(int reentrantBufferSize) |
Engine |
Engine.setReloadModifiedSharedFunctionInDevMode(boolean reloadModifiedSharedFunctionInDevMode)
Engine 独立设置为 devMode 可以方便模板文件在修改后立即生效,
但如果在 devMode 之下并不希望对 addSharedFunction(...),
添加的模板进行是否被修改的检测可以通过此方法设置 false 参进去
注意:Engine 在生产环境下(devMode 为 false),该参数无效
|
Engine |
Engine.setRoundingMode(RoundingMode roundingMode)
设置 #number 指令与 Arith 中浮点数的舍入规则,默认为 RoundingMode.HALF_UP "四舍五入"
|
Engine |
Engine.setSourceFactory(ISourceFactory sourceFactory)
设置 ISourceFactory 用于为 engine 切换不同的 ISource 实现类
ISource 用于从不同的来源加载模板内容
配置为 ClassPathSourceFactory 时特别注意:
由于 JFinal 会在 configEngine(Engine me) 方法调用 “之前”,会默认调用一次如下方法:
me.setBaseTemplatePath(PathKit.getWebRootPath())
而 ClassPathSourceFactory 在以上默认值下不能工作,所以需要通过如下方式清掉该值:
me.setBaseTemplatePath(null)
或者配置具体要用的 baseTemplatePath 值,例如:
me.setBaseTemplatePath("view");
|
Engine |
Engine.setStaticFieldExpression(boolean enable)
设置为 true 支持静态属性访问表达式,自 jfinal 5.0.2 版本开始默认值为 false
|
Engine |
Engine.setStaticMethodExpression(boolean enable)
设置为 true 支持静态方法调用表达式,自 jfinal 5.0.2 版本开始默认值为 false
|
Engine |
Engine.setToClassPathSourceFactory()
设置为 ClassPathSourceFactory 的快捷方法
|
Engine |
Engine.setToJdkEncoderFactory()
配置为 JdkEncoderFactory,支持 utf8mb4,支持 emoji 表情字符,
支持各种罕见字符编码
|
static Engine |
Engine.use()
Using the main Engine
|
static Engine |
Engine.use(String engineName)
Using the engine with engine name
|
| 限定符和类型 | 方法和说明 |
|---|---|
static void |
Engine.setMainEngine(Engine engine)
Set main engine
|
| 限定符和类型 | 方法和说明 |
|---|---|
static Engine |
Engine.create(String engineName,
Consumer<Engine> e)
Create engine with engine name managed by JFinal
Example:
Engine engine = Engine.create("myEngine", e -> {
e.setDevMode(true);
e.setToClassPathSourceFactory();
});
engine.getTemplate("template.html").render(System.out);
>
|
static Engine |
Engine.createIfAbsent(String engineName,
Consumer<Engine> e)
Create engine if absent with engine name managed by JFinal
Example:
Engine engine = Engine.createIfAbsent("myEngine", e -> {
e.setDevMode(true);
e.setToClassPathSourceFactory();
});
engine.getTemplate("template.html").render(System.out);
>
|
| 限定符和类型 | 字段和说明 |
|---|---|
static Engine |
JFinalViewResolver.engine |
| 限定符和类型 | 方法和说明 |
|---|---|
Engine |
JFinalViewResolver.getEngine() |
Copyright © 2024. All rights reserved.