博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
freemarker自定义标签
阅读量:4682 次
发布时间:2019-06-09

本文共 1348 字,大约阅读时间需要 4 分钟。

freemarker 自定义标签

有两种方法,一种是Spring注解添加自定义标签 一种的编码添加自定义标签

第一种:编码添加自定义标签

步骤一:添加自定义解析器

创建一个类继承 FreeMarkerConfigurer 类.重写afterPropertiesSet方法

示例:

@Override	public void afterPropertiesSet() throws IOException, TemplateException {		super.afterPropertiesSet();		this.getConfiguration().setSharedVariable("boolean",				new BooleanDirective());	}

setSharedVariable() 第一个是你freemaker要使用的标签名称 ,可以自定义 ,第二个是你实现的自定义标签

配置解析器

详细讲解下BooleanDirective 实现

创建 BooleanDirective 类 可以自定义名称 实现TemplateDirectiveModel接口

重写 execute 方法

Environment获取输出流。Map 自定义标签传过来的 <key,值> ,TemplateModel[]这个我也不是很清楚,很少用,可以自己去查资料

TemplateDirectiveBody用来输出.

Writer out = env.getOut();TemplateScalarModel scalarModel = (TemplateScalarModel) params.get("flag");boolean flag = scalarModel.getAsString().equals("123");if (flag) {	body.render(out);}else {	}

params.get() 返回有3中数据类型:

TemplateNumberModel 数字类型, TemplateScalarModel 字符串类型,TemplateBooleanModel boolean类型

根据你实际的需求走,我这里接收的是TemplateScalarModel 类型的

我得到一个值 然后判断是不是123 如果是的话,进行 标签的内容 输出 ,不是的话 标签的内容就不进行输出

模版调用:

[@boolean flag="123"]测试boolean[/@boolean]

这个flag是你那里map得到的key

到这里结束了,可以自己去试试.

还有一个简化添加自定义标签

Spring注解添加自定义标签

<bean id="booleanBean" class="com.shiro.freemaker.utils.BooleanDirective"></bean>

就可以了.2种方法随你想用哪一个

可以还需要:

转载于:https://www.cnblogs.com/zhousiwei/p/10625866.html

你可能感兴趣的文章
python中的split()方法的使用
查看>>
selenium-元素定位
查看>>
java- Collection Set集合
查看>>
[Golang] 从零開始写Socket Server(4):将执行參数放入配置文件(XML/YAML)
查看>>
Protocol入门
查看>>
CDH6.1.0离线安装——笔记
查看>>
26 Java语言基础键盘录入的基本格式讲解
查看>>
2.已知int a[10]={1,7,8,18,23,24,59,62,99},删去数组中与3成倍的数。
查看>>
“1010”问卷调查分析结果及心得体会
查看>>
Inno Step教程
查看>>
Linux中如何设置java环境变量
查看>>
Monad 最简介绍
查看>>
jq的load
查看>>
css垂直居中
查看>>
C++学习之虚析构函数
查看>>
three.js模型
查看>>
Unique Snowflakes
查看>>
Python基础练习
查看>>
layui小白问题——用别人的layui HTML页面出现纯静态的情况
查看>>
java编程规范
查看>>