jfinal自定义freemarker标签
1 1. config修改freemarkerrender 2 public void afterJFinalStart() { 3 super.afterJFinalStart(); 4 FreeMarkerRender.getConfiguration().setSharedVariable("bitch",new LabelDirective()); 5 } 6 7 2.添加对应的标签方法实现 8 public class LabelDirective implements TemplateDirectiveModel { 9 public void execute(Environment environment, Map map, TemplateModel[] templateModels, TemplateDirectiveBody templateDirectiveBody) throws TemplateException, IOException { 10 // 真正开始处理输出内容 11 List<User> users = new ArrayList<User>(); 12 users.add(new User(11, "a", "AAA")); 13 users.add(new User(22, "b", "BBB")); 14 users.add(new User(33, "c", "CCC")); 15 environment.setVariable("users", ObjectWrapper.DEFAULT_WRAPPER.wrap(users)); 16 templateDirectiveBody.render(environment.getOut()); 17 } 18 } 19 20 3.页面调用 21 <@bitch name="bitch"> 22 <#list users as user> 23 <option value="${user.username}">${user.username}</option> 24 </#list> 25 </@bitch> 26 27
问题
使用<@bitch> </@bitch>标签时候 ==templateDirectiveBody== 空指针.
<></> 标签之间要有内容