自定义标签
如果内置标签不满足您的需求,您也可以自定义标签,本文帮助您快速掌握如何开发Fastcms自定义标签
# 标签基类
com.fastcms.core.directive.BaseDirective是Fastcms标签基类,自定义标签必须从该类继承
public abstract class BaseDirective implements TemplateDirectiveModel {
protected static final String PARAM_COUNT = "count";
protected static final String PARAM_ORDER_BY = "orderBy";
private static final String DATA_KEY = "data";
@Override
public void execute(Environment env, Map params, TemplateModel[] loopVars, TemplateDirectiveBody body)
throws TemplateException, IOException {
DefaultObjectWrapperBuilder builder = new DefaultObjectWrapperBuilder(Configuration.VERSION_2_3_25);
TemplateModel tm = builder.build().wrap(doExecute(env, params));
env.setVariable(DATA_KEY, tm);
body.render(env.getOut());
}
public abstract Object doExecute(Environment env, Map params);
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
以内置菜单标签为例,继承自标签基类,代码如下
@Component("menuTag")
public class MenuDirective extends BaseDirective {
@Autowired
private IMenuService menuService;
@Override
public Object doExecute(Environment env, Map params) {
return menuService.getMenus();
}
}
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
# 如何使自定义标签生效
开发好标签之后,以插件的方式,安装插件使标签生效,无需重启服务器,即可直接在模板html文件中使用标签
下一章带您了解如何开发插件
上次更新: 2022/02/27, 02:44:28