Jfinal3 魔板 自定义指令
博客专区 > tony.li 的博客 > 博客详情
Jfinal3 魔板 自定义指令
tony.li 发表于8个月前
Jfinal3 魔板 自定义指令
  • 发表于 8个月前
  • 阅读 56
  • 收藏 0
  • 点赞 1
  • 评论 1

标题:腾讯云 新注册用户域名抢购1元起>>>   

Jfinal3 魔板功能异常强大,在简洁的核心指令基础上,又可以自由灵活扩展,给开发人员带来极大的便利,以下实现trim指令,只需要继承Directive ,实现exec方法即可, 主要功能是针对魔板中的块内容进行trim ,在保留魔板代码的可读性上 ,优化输出内容,去掉部分空行 ,如果确认块内容只需要执行不需要输出,可直接通过trim指令第一个参数来跳过打印 如:#trim(true) ,寥寥数行代码,异常简单。

#trim()
  #set(strA = "aaa")
  #set(strB = "aaa")
#end
#(strA)

 

public static class TrimDirective extends Directive {
        private boolean skipPrint = false;
        public void setExprList(ExprList exprList) {
            Expr[] exprArray = exprList.getExprArray();
            if(exprArray.length >0 && exprArray[0] instanceof Const) {
                if(!((Const)exprArray[0]).isBoolean()) {
                    throw new ParseException("#trim firest parameter [skipPrint] must be boolean", this.location);
                }
                this.skipPrint = ((Const)exprArray[0]).getBoolean().booleanValue();
            }
        }
        public void exec(Env env, Scope scope, Writer writer) {
            FastStringWriter fsw = new FastStringWriter();
            stat.exec(env,scope,fsw);
            if(!this.skipPrint && fsw.getBuffer().length()>0){
                write(writer, fsw.toString().trim());
            }
        }

        public boolean hasEnd() {
            return true;
        }
    }

据说jfinal的设计建模基于一些哲学思维,看到jfinal 让我想起一句话,“给我一个支点 我就能撬动地球  ” ,希望jfinal这个支点内成为大家顺利飞升的助力,想要解脱飞升的程序猿赶快加入Jfinal 俱乐部亲听波总授业解惑,感谢 @JFinal 波总多年来的务实奉献精神,希望jfinal越来越好。开源不易,也希望言论都能出自本心,向所有开源贡献者致敬。第一次发帖,话有点语无伦次了…… 见谅。

 

标签: jfin jfinal魔板
共有 人打赏支持
粉丝 6
博文 1
码字总数 391
评论 (1)
JFinal
感谢你的分享,越来越多的人发现 jfinal template engine 的简洁强大之处了,后续会有越来越多的功能被扩展出来,有小伙伴们扩展出来的 shiro 权管理指令相当自然好用:
#hasPermission(...)
显示某某管理菜单
#end
×
tony.li
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: