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

本文介绍了如何在JFinal框架中扩展指令,包括创建带有#end的自定义指令Now,以及在HTML页面和Java代码中使用的方法,展示了从基本扩展到处理复杂逻辑的过程。
摘要由CSDN通过智能技术生成

第二十小节,我们主要学习了扩展指令的用法。例子中演示了官方文档上的简单用法,随后我们自己进行了拓展。在指令中传入参数,在扩展指令的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:终于清理完小尾巴,好开心,祝小伙伴们周末愉快!


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值