第二十小節(jié)棚贾,我們主要學(xué)習(xí)了擴(kuò)展指令的用法窖维。例子中演示了官方文檔上的簡(jiǎn)單用法,隨后我們自己進(jìn)行了拓展鸟悴。在指令中傳入?yún)?shù)陈辱,在擴(kuò)展指令的java類(lèi)中進(jìn)行處理,然后輸出我們理想中的處理結(jié)果细诸。類(lèi)似的場(chǎng)景還是很多,希望小伙伴們陋守,自己去深入研究震贵。
1、處理遺留的小尾巴
上一小節(jié)水评,只是簡(jiǎn)單的理解了如何去擴(kuò)展指令猩系,但是如果我們還想要更加強(qiáng)大的操作怎么辦?我們可以擴(kuò)展一個(gè)帶有
#end
的指令中燥。讓我們一起玩起來(lái)吧寇甸!
1.1編寫(xiě)HTML頁(yè)面
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>jfinal模板引擎之二十</title>
</head>
<body>
#now()
這里是body的內(nèi)容
#end
</body>
</html>
1.2改造java擴(kuò)展代碼
package com.demo.test;
import java.io.Writer;
import com.jfinal.template.Directive;
import com.jfinal.template.Env;
import com.jfinal.template.expr.ast.ExprList;
import com.jfinal.template.stat.Scope;
public class Now extends Directive{
@Override
public void setExprList(ExprList exprList) {
super.setExprList(exprList);
//該方法非必須
}
@Override
public void exec(Env env, Scope scope, Writer writer) {
write(writer,"body執(zhí)行之前");
stat.exec(env, scope, writer);
write(writer,"body執(zhí)行之后");
}
@Override
public boolean hasEnd() {
//告訴jfinal,這個(gè)指令是包含#end標(biāo)識(shí)結(jié)束的
return true;
}
}
1.3查看效果
PS:終于清理完小尾巴疗涉,好開(kāi)心拿霉,祝小伙伴們周末愉快!