jfinal自定义freemarker标签

jfinal自定义freemarker标签


    1. config修改freemarkerrender
    public void afterJFinalStart() {
        super.afterJFinalStart();
        FreeMarkerRender.getConfiguration().setSharedVariable("bitch",new LabelDirective());
    }
    
    2.添加对应的标签方法实现
    public class LabelDirective implements TemplateDirectiveModel {
        public void execute(Environment environment, Map map, TemplateModel[] templateModels, TemplateDirectiveBody templateDirectiveBody) throws TemplateException, IOException {
        // 真正开始处理输出内容
        List<User> users = new ArrayList<User>();
        users.add(new User(11, "a", "AAA"));
        users.add(new User(22, "b", "BBB"));
        users.add(new User(33, "c", "CCC"));
        environment.setVariable("users", ObjectWrapper.DEFAULT_WRAPPER.wrap(users));
        templateDirectiveBody.render(environment.getOut());
        }
    }
    
    3.页面调用
    <@bitch name="bitch">
        <#list users as user>
             <option value="${user.username}">${user.username}</option>
        </#list>
    </@bitch>

问题

使用<@bitch> </@bitch>标签时候 ==templateDirectiveBody== 空指针.

<></> 标签之间要有内容

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏偏前端工程师的驿站

JS魔法堂:再识IE的内存泄露

一、前言                               IE6~8除了不遵守W3C标准和各种诡异外,我想最让人诟病的应该是内存泄露的问题了。这阵子...

26450
来自专栏雨过天晴

原 荐 PHP 在 Console 模式下的

18410
来自专栏一“技”之长

iOS对UIViewController生命周期和属性方法的解析

        作为MVC设计模式中的C,Controller一直扮演着项目开发中最重要的角色,它是视图和数据的桥梁,通过它的管理,将数据有条有理的展示在我们的...

25920
来自专栏Spring相关

Springboot用官方建议访问Html页面并接传值

我们以前通常习惯用webapp来放置jsp页面,但是到了Springboot中,官方建议用Static文件夹来存放及静态的资源,

78640
来自专栏Android知识点总结

Android基于TCP的五子棋双人对战实现

20320
来自专栏Golang语言社区

Go Channel 详解

Channel是Go中的一个核心类型,你可以把它看成一个管道,通过它并发核心单元就可以发送或者接收数据进行通讯(communication)。

29120
来自专栏Spring相关

第7章—SpringMVC高级技术—处理multipart形式的数据

MultipartResolver 用于处理文件上传,当收到请求时 DispatcherServlet 的 checkMultipart() 方法会调用 Mul...

36820
来自专栏yukong的小专栏

【SpringBoot2.0系列11】SpringBoot之@Elasticsearch完成CURD

【SpringBoot系列02】SpringBoot之使用Thymeleaf视图模板

84230
来自专栏Golang语言社区

【Go 语言社区】并发性

并发性 并发的特点是需要锁Lock和互斥Mutex。在Java中加锁和解锁是一个复杂过程代码如下: try { mutex.acquire(); try...

373110
来自专栏chafezhou

程序员探案之被吃掉的串口数据

19540

扫码关注云+社区

领取腾讯云代金券