jfinal自定义freemarker标签

时间:2022-04-27
本文章向大家介绍jfinal自定义freemarker标签,主要内容包括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== 空指针.

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