1, ?interpret
能够将文本的值解析为宏,类似动态指令用法如下
<#assign x=["a", "b", "c"]>
<#assign templateSource = "<#list x as y>${y}</#list>">
<#assign inlineTemplate = templateSource?interpret>
<@inlineTemplate />
其中"<#list x as y>${y}</#list>"可以是从数据库中读取出来的指令
2, ?new
创建一个java对象
<#assign word_wrapp = "com.acmee.freemarker.WordWrapperDirective"?new()>
还可以在new的时候加参数,如
<#assign word_wrapp = "com.acmee.freemarker.WordWrapperDirective"?new(40)>
3, !!和??
两个简写符号,可以让我偷电缆(偷点懒)
${obj.name!!} = ${obj.name?default('')}
<#if obj?? > = <#if obj?exists>
4, ; in macro 和 nest的参数
原本以为<#nest/>不能加参数,在构造模板时费了一些劲,原来可以用;在引用macro时给nest传参数
<@repeat count=4 ; c, halfc, last>
${c}.${halfc}<#if last> Last!</#if>
</@repeat>
<@repeat count=4 ; c, halfc>
${c}.${halfc}
</@repeat>
<@repeat count=4>
Just repeat it
</@repeat>
5, include里的通配符*
好像可以应对不固定文件夹层级路径的写法,但具体没用过
<#include "*/footer.ftl">
匹配如下
/foo/bar/footer.ftl
/foo/footer.ftl
/footer.ftl
6 字符串转换为数字
<#assign width="234"/>
<#assign widthNum=width?eval/>
分享到:
相关推荐
1. 创建自定义指令类:你需要创建一个继承自`freemarker.template.TemplateDirectiveModel`的Java类。这个类将定义你的自定义标签的行为,包括如何处理输入参数,如何处理模板模型数据,以及如何生成输出。 2. 注册...
这对于想要定制或者优化Freemarker功能的高级开发者来说尤其有用。同时,源码也是学习软件设计模式和最佳实践的好材料。 总的来说,这个压缩包提供了一套完整的Freemarker学习资源,从基本的API文档到开发环境的...
1. **基础概念**:Freemarker的核心概念包括模板、数据模型和配置。模板是HTML或其他格式的文件,包含Freemarker表达式;数据模型是提供给模板的数据源;配置则是设置模板解析和执行的规则。 2. **模板语言**:...
六、Freemarker编辑器的高级功能 1. 自动完成:编辑器通常会提供FTL语法的自动补全,帮助开发者快速编写模板。 2. 高亮显示:编辑器可以高亮模板中的关键词和表达式,提高代码可读性。 3. 错误检查:实时检测模板中...
- **学习曲线**:Velocity的学习曲线较平缓,适合初学者,而FreeMarker可能需要更多时间去熟悉其高级特性。 - **灵活性**:FreeMarker的灵活性更强,可以更好地处理复杂逻辑,而Velocity更强调模板的纯粹性,尽量...
四、Freemarker高级特性 1. 自定义指令:可以扩展Freemarker,创建自定义指令以满足特定需求。 2. 缓存机制:Freemarker支持缓存模板,提高性能。 3. 国际化支持:通过`#localize`和`#fmt`指令处理多语言内容。 ...
- **高级指令**: - `<#macro>`:定义宏,类似于函数。 - `<@>`:调用宏。 - `<#import>`:导入其他模板文件。 - `<#include>`:包含其他模板文件。 #### 2. 表达式 - **变量引用**: `${variableName}`,直接...
- 探索Freemarker的高级特性,如宏和自定义标签,它们可以扩展模板语言的功能。 通过"freemarker-test"这个压缩包文件,你可以实践以上知识,创建和运行Freemarker模板,逐步熟悉其语法和特性。同时,结合实际项目...
1. **模板语言**:Freemarker的模板语言是一种简单的、非侵入式的标记语言,允许开发者在模板中嵌入变量和控制结构。例如,`<#if>`、`<#foreach>`等指令用于条件判断和循环,`${}`用于插入变量值。 2. **数据驱动**...
### FreeMarker实例教程知识点详解 ...以上知识点覆盖了FreeMarker的主要方面,通过本教程的学习,读者不仅能够掌握FreeMarker的基本使用方法,还能够深入了解其高级特性,为日后解决复杂的Web开发问题打下坚实的基础。
综上,这份Freemarker中文手册涵盖了Freemarker的基本概念、语法、内置函数、与Java的交互方式以及高级特性和最佳实践,是学习和使用Freemarker不可或缺的参考资料。通过深入阅读和实践,开发者能够熟练地运用...
自定义标签则是Freemarker的一个高级特性,允许我们扩展其内置功能,创建自己的模板标签。自定义标签通常以`<@...>`的形式出现,它们可以封装复杂的逻辑,提供更抽象的界面给模板设计者。创建自定义标签通常需要两个...
1. **基本语法**:Freemarker使用简单的模板语言,主要包括变量表示(${})、控制结构(if/else、foreach)、条件表达式(?)和函数调用(例如,日期和时间的格式化)。 2. **模板设计模式**:如如何定义模板布局,...
以上就是Freemarker中遍历list集合的基本操作和一些高级用法。理解并熟练掌握这些技巧,能够让你在构建动态模板时更加灵活和高效。通过实际练习和应用,你将能够自如地处理各种复杂的数据结构和业务需求。在实际项目...
开发者还可以利用Freemarker的高级特性,比如宏(Macros)、指令(Directives)、函数(Functions)等,构建可重用的模板组件。此外,Freemarker支持模板继承,子模板可以继承父模板的部分内容,并在其基础上进行...
1. **基础概念**:解释了FreeMarker模板语言的基本元素,如变量、控制结构(if/else、foreach)、内置函数和方法。 2. **数据模型**:描述如何将Java对象绑定到模板,以及如何访问对象的属性。 3. **模板设计**:...
1. **Freemarker基础** - Freemarker是一个基于模板的开源Java库,它允许开发者通过定义模板语言(FTL,Freemarker Template Language)与数据模型相结合,生成动态内容。 - FTL是一种声明式语言,它不包含任何...
此外,FreeMarker提供了一些高级特性,比如条件语句(`<#if>`)、循环(`<#list>`)、函数调用等,可以帮助你创建复杂的模板逻辑。同时,Struts框架也有许多扩展点,如拦截器、自定义结果类型等,可以增强应用的功能...