Fastcms官方文档
首页
  • 快速入门
  • 用户手册
  • 快速开始
  • 模板开发
  • 插件开发
接口文档 (opens new window)
提问 (opens new window)
  • Gitee (opens new window)
  • Github (opens new window)
首页
  • 快速入门
  • 用户手册
  • 快速开始
  • 模板开发
  • 插件开发
接口文档 (opens new window)
提问 (opens new window)
  • Gitee (opens new window)
  • Github (opens new window)
  • 快速开始

    • 构建源码
    • 代码生成
  • 模板开发

    • 模板结构
    • 内置标签
    • 自定义标签
      • 标签基类
      • 如何使自定义标签生效
  • 插件开发

    • 插件结构
    • 如何开发插件

自定义标签

如果内置标签不满足您的需求,您也可以自定义标签,本文帮助您快速掌握如何开发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

以内置菜单标签为例,继承自标签基类,代码如下

@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

# 如何使自定义标签生效

开发好标签之后,以插件的方式,安装插件使标签生效,无需重启服务器,即可直接在模板html文件中使用标签
下一章带您了解如何开发插件

上次更新: 2022/02/27, 02:44:28
内置标签
插件结构

← 内置标签 插件结构→

Theme by Vdoing | Copyright © 2016-2022 小橘灯科技 | .粤ICP备20053122号.
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式