第二十小節,我們主要學習了擴展指令的用法。例子中演示了官方文檔上的簡單用法,隨后我們自己進行了拓展。在指令中傳入參數,在擴展指令的java類中進行處理,然后輸出我們理想中的處理結果。類似的場景還是很多,希望小伙伴們,自己去深入研究。
1、處理遺留的小尾巴
上一小節,只是簡單的理解了如何去擴展指令,但是如果我們還想要更加強大的操作怎么辦?我們可以擴展一個帶有
#end
的指令。讓我們一起玩起來吧!
1.1編寫HTML頁面
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>jfinal模板引擎之二十</title>
</head>
<body>
#now()
這里是body的內容
#end
</body>
</html>
1.2改造java擴展代碼
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執行之前");
stat.exec(env, scope, writer);
write(writer,"body執行之后");
}
@Override
public boolean hasEnd() {
//告訴jfinal,這個指令是包含#end標識結束的
return true;
}
}
1.3查看效果
最終效果
PS:終于清理完小尾巴,好開心,祝小伙伴們周末愉快!