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

第二十小节,我们主要学习了扩展指令的用法。例子中演示了官方文档上的简单用法,随后我们自己进行了拓展。在指令中传入参数,在扩展指令的java类中进行处理,然后输出我们理想中的处理结果。类似的场景还是很多,希望小伙伴们,自己去深入研究。

1、处理遗留的小尾巴

上一小节,只是简单的理解了如何去扩展指令,但是如果我们还想要更加强大的操作怎么办?我们可以扩展一个带有#end的指令。让我们一起玩起来吧!

1.1编写HTML页面





jfinal模板引擎之二十


#now()
   这里是body的内容
#end


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查看效果

JFinal3.0快速上手,遇见模板引擎(二十一)_第1张图片
最终效果

PS:终于清理完小尾巴,好开心,祝小伙伴们周末愉快!

你可能感兴趣的:(JFinal3.0快速上手,遇见模板引擎(二十一))