JFinal3.0快速上手,遇見模板引擎(二十一)

第二十小節,我們主要學習了擴展指令的用法。例子中演示了官方文檔上的簡單用法,隨后我們自己進行了拓展。在指令中傳入參數,在擴展指令的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:終于清理完小尾巴,好開心,祝小伙伴們周末愉快!

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容