freemarker自定义标签
来源:互联网 发布:刑事科学技术知乎 编辑:程序博客网 时间:2024/06/05 21:12
freemarker 自定义标签
有两种方法,一种是Spring注解添加自定义标签 一种的编码添加自定义标签
第一种:编码添加自定义标签
步骤一:添加自定义解析器
创建一个类继承 FreeMarkerConfigurer 类.重写afterPropertiesSet方法
示例:
@Overridepublic void afterPropertiesSet() throws IOException, TemplateException {super.afterPropertiesSet();this.getConfiguration().setSharedVariable("boolean",new BooleanDirective());}
setSharedVariable() 第一个是你freemaker要使用的标签名称 ,可以自定义 ,第二个是你实现的自定义标签
配置解析器
<bean class="这个class改成自定义的解析器"><property name="templateLoaderPath" value="/WEB-INF/page/" /></bean>
详细讲解下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>
<bean id="booleanBean" class="自定义标签全类名"></bean><bean class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer"><property name="templateLoaderPath" value="/WEB-INF/page/" /><property name="freemarkerVariables"><map><entry key="boolean" value-ref="我和自定义标签全类名对应" /></map></property></bean>
就可以了.2种方法随你想用哪一个
可以还需要: freemarker中使用shiro标签
- freemarker 自定义freeMarker标签
- FreeMarker 自定义标签
- freemarker编写自定义标签
- freemarker自定义标签
- FreeMarker自定义标签
- freemarker 自定义标签
- freemarker自定义标签
- freemarker自定义标签
- Freemarker自定义标签
- Freemarker 自定义标签实现
- freeMarker 自定义标签
- Struts2结合freemarker自定义标签
- Struts2与freemarker自定义标签
- Struts2结合freemarker自定义标签
- freemarker自定义标签(一)
- freemarker自定义标签(二)
- Freemarker 自定义标签 实现TemplateDirectiveModel
- 如何实现自定义freemarker标签
- struts2常用注解
- 1063. 计算谱半径(20)
- KMP算法-串的匹配问题
- shell--编程
- TensorFlow学习笔记(四):CNN之AlexNet网络
- freemarker自定义标签
- poi导出Excel工具类
- 整理matlab图像处理
- ARC forbids explicit message send of 'retainCount'
- union-find算法的研究
- WinSCP的使用
- socket取流阻塞
- springMVC常用注解
- Android Studio与HttpClient