| 程序包 | 说明 |
|---|---|
| com.jfinal.kit | |
| com.jfinal.plugin.activerecord.sql | |
| com.jfinal.template | |
| com.jfinal.template.ext.directive | |
| com.jfinal.template.ext.spring |
| 限定符和类型 | 类和说明 |
|---|---|
static class |
ElKit.InnerEvalDirective |
| 限定符和类型 | 类和说明 |
|---|---|
class |
NameSpaceDirective
NameSpaceDirective
|
class |
ParaDirective
#para 指令用于在 sql 模板中根据参数名生成问号占位以及查询参数
一、参数为表达式的用法
1:模板内容
#sql("find")
select * from user where nickName = #para(nickName) and age > #para(age)
#end
2: java 代码
SqlPara sp = getSqlPara("find", Kv.by("nickName", "prettyGirl").set("age", 18));
user.find(sp)
或者:
user.find(sp.getSql(), sp.getPara());
3:以上用法会在 #para(expr) 处生成问号占位字符,并且实际的参数放入 SqlPara 对象的参数列表中
后续可以通过 sqlPara.getPara() 获取到参数并直接用于查询
二、参数为 int 型数字的用法
1:模板内容
#sql("find")
select * from user where id > #para(0) and id < #para(1)
#end
2: java 代码
SqlPara sp = getSqlPara("find", 10, 100);
user.find(sp)
3:以上用法会在 #para(0) 与 #para(1) 处生成问号占位字符,并且将 10、100 这两个参数放入
SqlPara 对象的参数列表中,后续可以通过 sqlPara.getPara() 获取到参数并直接用于查询
|
class |
SqlDirective
SqlDirective
|
| 限定符和类型 | 方法和说明 |
|---|---|
void |
EngineConfig.addDirective(String directiveName,
Directive directive) |
Engine |
Engine.addDirective(String directiveName,
Directive directive)
Add directive
|
| 限定符和类型 | 类和说明 |
|---|---|
class |
DateDirective
不带参时,按默认 pattern 输出当前日期
#date() 指令支持无参时获取当前指令,第一个参数 string 当成是 pattern
日期输出指令,第一个参数是被输出的 java.util.Date 对象或其子类对象
无第二个参数时按默认 patter 输出,第二个参数为 expr 表达式,表示 pattern
第二个为 date 时,表示当第一个为 null 时的默认值
|
class |
EscapeDirective
Escape 对字符串进行转义
用法:
#escape(value)
|
class |
NowDirective
输出当前时间,默认考虑是输出时间,给 pattern 输出可能是 Date、DateTime、Timestamp
带 String 参数,表示 pattern
|
class |
RandomDirective
输出随机数
|
class |
RenderDirective
#render 指令用于动态渲染子模板,作为 include 指令的补充
两种用法:
1:只传入一个参数,参数可以是 String 常量,也可以是任意表达式
#render("_hot.html")
#render(subFile)
2:传入任意多个参数,除第一个参数以外的所有参数必须是赋值表达式,用于实现参数传递功能
#render("_hot.html", title = "热门新闻", list = newsList)
上例中传递了 title、list 两个参数,可以代替父模板中的 #set 指令传参方式
并且此方式传入的参数只在子模板作用域有效,不会污染父模板作用域
这种传参方式有利于将子模板模块化,例如上例的调用改成如下的参数:
#render("_hot.html", title = "热门项目", list = projectList)
通过这种传参方式在子模板 _hot.html 之中,完全不需要修改对于 title 与 list
这两个变量的处理代码,就实现了对 “热门项目” 数据的渲染
|
class |
StringDirective
#string 指令方便定义大量的多行文本变量,这个是 java 语言中极为需要的功能
定义:
#string(name)
在此是大量的字符串
#end
使用:
#(name)
|
| 限定符和类型 | 方法和说明 |
|---|---|
void |
JFinalViewResolver.addDirective(String directiveName,
Directive directive)
添加自定义指令
|
Copyright © 2017. All rights reserved.