JFinal集成Beetl静态模板

Stella981
• 阅读 587

话说Beetl模板框架比Freemarker模板还要快,至于到底怎么样,目前还没有感觉到,不管那么多了,上手再说。 首先需要下载beetl包:Beetl模板路径 Beetl提供JFinal框架的集成,使用BeetRenderFactory类,通过如下代码注册即可完成集成:

@Override  
    public void configConstant(Constants me) {  
        loadPropertyFile("jdbc.properties");  
        //配置模板  
        me.setMainRenderFactory(new MyBeetlRenderFactory());  
        //获取GroupTemplate模板,可以设置共享变量操作  
        GroupTemplate groupTemplate=MyBeetlRenderFactory.groupTemplate;  
        me.setDevMode(getPropertyToBoolean("config.devModel", false));  
        me.setViewType(ViewType.JSP);  
        me.setEncoding("UTF-8");  
    }  

该方法的作用为JFinal框架中常量配置方法,这里我自定义的MyBeetlRenderFactory类继承于BeetlRenderFactory,如下:

    package com.tenghu.core.beetl;  
    import org.beetl.ext.jfinal.BeetlRender;  
    import org.beetl.ext.jfinal.BeetlRenderFactory;  
    import com.jfinal.render.Render;  
    public class MyBeetlRenderFactory extends BeetlRenderFactory{  
        @Override  
        public Render getRender(String view) {  
            BeetlRender render=new BeetlRender(groupTemplate, view);  
            return render;  
        }  
        @Override  
        public String getViewExtension() {  
            return ".html";  
        }  
    }  

由于BeetRenderFactory默认使用的FileResourceLoader,其根目录位于WebRoot下,如果需要修改其他 目录下,需要在src下创建一个beetl,properties的属性文件,在该文件中配置如下代码:

RESOURCE.root=/WEB-INF/view  

因为Beetl默认的配置文件在org/beetl/core/beetl-default.properties,Beetl启动时会通过Configuration类加载,然后再加载classpath中的beetl.properties,如果自己创建的beetl.properties文件,那么回后者会将前者覆盖 到这里呢,Jfinal集成Beetl模板就算完成了,接下来看下实现的效果,如下:

public void index(){  
        List<Users> testList=Users.dao.find("select * from users");  
        setAttr("testList", testList);  
        render("login.html");  
    }  

这里我输出的是login.html页面,该页面在WEB-INF/view中,看着是不是很方便,如果不自己配置beetl.properties文件,那么render这个地方就需要写WEB-INF/view/login.html,一个项目中肯定有很多页面,如果不配置beetl.properties文件,每个输出到界面的页面都要使用完整的路径,就会觉得是一件特麻烦的事,配置beetl.peoperties文件就减少了重复的工作 上面也看到了,这里我输出的是一个集合,那么使用Beetl模板怎么对集合进行遍历呢,很简单,如下:

<%for(test in testList){%>  
        <tr>  
            <td>${testLP.index}</td>  
            <td>${test.id}</td>  
            <td>${test.username!''}</td>  
        </tr>  
    <%}%>  

看到这样的输出,是不是有种熟悉的感觉,对了,与jsp的小脚本差不多的标签,但是还是不要搞混了 大家可能也看到了testLp这个变量,该变量是beetl隐含定义的变量,能在循环体内使用,其命名规范是item加上LP能提供当前循环的信息,如: testLP.index;当前的索引,从1开始 testLP.size;集合的长度 testLP.first;是否是第一个 testLP.last;是否是最后一个 testLP.even;是否是偶数个 testLP.odd;是否是奇数个 在Beetl模板中对循环操作不止上面一个,上面的for循环的形式是for-in,接下来还有: for(exp;exp;exp) while elsefor 使用如下: for(exp;exp;exp)

点赞
收藏
评论区
推荐文章
待兔 待兔
3个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Wesley13 Wesley13
3年前
Java 复杂excel报表导出
MyExcel,是一个可直接使用Html文件,或者使用内置的Freemarker、Groovy、Beetl等模板引擎Excel构建器生成的Html文件,以Html文件中的Table作为Excel模板来生成任意复杂布局的Excel的工具包,支持.xls、.xlsx格式,支持对背景色、边框、字体等进行个性化设置,支持合并单元格。Github:https:/
Easter79 Easter79
3年前
SpringBoot系列教程web篇之Beetl环境搭建
前面两篇分别介绍了目前流行的模板引擎Freemaker和Thymeleaf构建web应用的方式,接下来我们看一下号称性能最好的国产模板引擎Beetl,如何搭建web环境本文主要来自官方文档,如有疑问,推荐查看:http://ibeetl.com/guide/beetl(https://www.oschina.net/action/GoToLi
Stella981 Stella981
3年前
Beetl的极简之道
跟一个同为国内流行开源软件的开发者聊天,他说beetl功能太全,代码太多。他希望的模板与语言应该简单,然后发给我一个只提供几个指令的模板引擎的链接。后来,我详细介绍beetl让他明白了Beetl的简约之处,同时我也认识到,并不是所有开发者一眼能开出beetl的核心价值:简单。本文将详细介绍Beetl的极简之道。极简之一:简单定界符号:Beet
Stella981 Stella981
3年前
Beetl 3.2.4.RELEASE,Java 模板引擎 Beetl
修复了3.2.1版本调增后,不兼容API的bug修复升级到3后,脚本引擎执行不支持Java直接调用的Bug<dependency<groupIdcom.ibeetl</groupId<artifactIdbeetl</artifactId<version3.2.4.RELEASE
Stella981 Stella981
3年前
SpringBoot系列教程web篇之Beetl环境搭建
前面两篇分别介绍了目前流行的模板引擎Freemaker和Thymeleaf构建web应用的方式,接下来我们看一下号称性能最好的国产模板引擎Beetl,如何搭建web环境本文主要来自官方文档,如有疑问,推荐查看:http://ibeetl.com/guide/beetl(https://www.oschina.net/action/GoToLi
Stella981 Stella981
3年前
Beetl性能再次测试
在某个“新模板引擎”的基准测试增加Beetl,测试结果如下,可以看到Beetl还是很领先,每秒渲染80685次(我的机器是MacPro,CoreI7)BenchmarkModeCntScoreErrorUnitsBeetl.benchmarkthrpt1
Stella981 Stella981
3年前
Beetl2.8 中文文档
1\.什么是BeetlBeetl目前版本是2.8.5,相对于其他java模板引擎,具有功能齐全,语法直观,性能超高,以及编写的模板容易维护等特点。使得开发和维护模板有很好的体验。是新一代的模板引擎。总得来说,它的特性如下:功能完备:作为主流模板引擎,Beetl具有相当多的功能和其他模板引擎不具备的功能。适用于_各种应用场景_,从对响
Stella981 Stella981
3年前
BeetlConfiguration扩展配置
beetl拓展配置类,绑定一些工具类,方便在模板中直接调用BeetlConfiguration.javapublicclassBeetlConfigurationextendsBeetlGroupUtilConfiguration{@AutowiredprivateEn
Stella981 Stella981
3年前
Beetl3.0 功能预览
Beetl是一款全功能,性能优秀的国产模板引擎,可以广泛用于动态页面生成,静态页面生成,代码生成,文本转换,脚本和规则引擎等,从2011年来,一直维护,并得到国内用户的肯定。1性能篇Beetl3.0现在进展到M1版本,单元测试都通过,俩个模板类的性能测试也跑了一下,结果如下国内Keb同学提供的性能测试来看(https://gi