今天接手一个项目,项目中使用SpringBoot,发现之前实现Beetl自定义标签注册的方式有些傻大粗,做了些修改,整理之后发布,作为回顾。
Beetl自定义标签
下面说一下在SpringBoot中关于Beetl自定义标签的定义以及注入:
- 自定义标签需要继承
org.beetl.core.Tag
类,在render()
方法中进行标签功能实现; 标签注册
/** * Beetl配置类 */ @Configuration public class BeetlConfiguration { @Bean(initMethod = "init", name = "beetlConfig") public BeetlGroupUtilConfiguration getBeetlConfig() { BeetlGroupUtilConfiguration beetlGroupUtilConfiguration = new BeetlGroupUtilConfiguration(); // 1.单个标签注册 beetlGroupUtilConfiguration.getGroupTemplate().registerTag("myTag", FindListTag.class); // 2.通过Spring Bean方式注册 SpringBeanTagFactory tagFactory = new SpringBeanTagFactory(); // 此处使用的name为Spring中注册的Bean的name tagFactory.setName("myTag"); beetlGroupUtilConfiguration.getGroupTemplate().registerTagFactory("myTag", tagFactory); // 3.多标签注册 SpringBeanTagFactory tag1 = new SpringBeanTagFactory(); tag1.setName("myTag1"); SpringBeanTagFactory tag2 = new SpringBeanTagFactory(); tag2.setName("myTag2"); Map<String, TagFactory> tags = new HashMap<>(); tags.put