`

freemarker高级1

阅读更多
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/>
分享到:
评论

相关推荐

    freemarker 自定义freeMarker标签

    1. 创建自定义指令类:你需要创建一个继承自`freemarker.template.TemplateDirectiveModel`的Java类。这个类将定义你的自定义标签的行为,包括如何处理输入参数,如何处理模板模型数据,以及如何生成输出。 2. 注册...

    freemarker 源码、中文API、 freemarker Myeclipse 编辑器

    这对于想要定制或者优化Freemarker功能的高级开发者来说尤其有用。同时,源码也是学习软件设计模式和最佳实践的好材料。 总的来说,这个压缩包提供了一套完整的Freemarker学习资源,从基本的API文档到开发环境的...

    freemarker官方中文帮助文档

    1. **基础概念**:Freemarker的核心概念包括模板、数据模型和配置。模板是HTML或其他格式的文件,包含Freemarker表达式;数据模型是提供给模板的数据源;配置则是设置模板解析和执行的规则。 2. **模板语言**:...

    freemarker编辑器

    六、Freemarker编辑器的高级功能 1. 自动完成:编辑器通常会提供FTL语法的自动补全,帮助开发者快速编写模板。 2. 高亮显示:编辑器可以高亮模板中的关键词和表达式,提高代码可读性。 3. 错误检查:实时检测模板中...

    velocity和freemarker的比较

    - **学习曲线**:Velocity的学习曲线较平缓,适合初学者,而FreeMarker可能需要更多时间去熟悉其高级特性。 - **灵活性**:FreeMarker的灵活性更强,可以更好地处理复杂逻辑,而Velocity更强调模板的纯粹性,尽量...

    freemarker 教程 使用手册

    四、Freemarker高级特性 1. 自定义指令:可以扩展Freemarker,创建自定义指令以满足特定需求。 2. 缓存机制:Freemarker支持缓存模板,提高性能。 3. 国际化支持:通过`#localize`和`#fmt`指令处理多语言内容。 ...

    FreeMarker中文文档.pdf下载

    - **高级指令**: - `&lt;#macro&gt;`:定义宏,类似于函数。 - `&lt;@&gt;`:调用宏。 - `&lt;#import&gt;`:导入其他模板文件。 - `&lt;#include&gt;`:包含其他模板文件。 #### 2. 表达式 - **变量引用**: `${variableName}`,直接...

    freemarker代码

    - 探索Freemarker的高级特性,如宏和自定义标签,它们可以扩展模板语言的功能。 通过"freemarker-test"这个压缩包文件,你可以实践以上知识,创建和运行Freemarker模板,逐步熟悉其语法和特性。同时,结合实际项目...

    freemarker 2.3.10架包

    1. **模板语言**:Freemarker的模板语言是一种简单的、非侵入式的标记语言,允许开发者在模板中嵌入变量和控制结构。例如,`&lt;#if&gt;`、`&lt;#foreach&gt;`等指令用于条件判断和循环,`${}`用于插入变量值。 2. **数据驱动**...

    FreeMarker实例教程,手把手教你FreeMarker的方方面面

    ### FreeMarker实例教程知识点详解 ...以上知识点覆盖了FreeMarker的主要方面,通过本教程的学习,读者不仅能够掌握FreeMarker的基本使用方法,还能够深入了解其高级特性,为日后解决复杂的Web开发问题打下坚实的基础。

    freemarker中文手册

    综上,这份Freemarker中文手册涵盖了Freemarker的基本概念、语法、内置函数、与Java的交互方式以及高级特性和最佳实践,是学习和使用Freemarker不可或缺的参考资料。通过深入阅读和实践,开发者能够熟练地运用...

    Freemarker 自定义标签 简单案例

    自定义标签则是Freemarker的一个高级特性,允许我们扩展其内置功能,创建自己的模板标签。自定义标签通常以`&lt;@...&gt;`的形式出现,它们可以封装复杂的逻辑,提供更抽象的界面给模板设计者。创建自定义标签通常需要两个...

    Freemarker2.3.16_带简单教程

    1. **基本语法**:Freemarker使用简单的模板语言,主要包括变量表示(${})、控制结构(if/else、foreach)、条件表达式(?)和函数调用(例如,日期和时间的格式化)。 2. **模板设计模式**:如如何定义模板布局,...

    Freemarker中遍历list集合实例

    以上就是Freemarker中遍历list集合的基本操作和一些高级用法。理解并熟练掌握这些技巧,能够让你在构建动态模板时更加灵活和高效。通过实际练习和应用,你将能够自如地处理各种复杂的数据结构和业务需求。在实际项目...

    freemarker-2.2.8.zip

    开发者还可以利用Freemarker的高级特性,比如宏(Macros)、指令(Directives)、函数(Functions)等,构建可重用的模板组件。此外,Freemarker支持模板继承,子模板可以继承父模板的部分内容,并在其基础上进行...

    struts2和freemarker整合

    1. **基础概念**:解释了FreeMarker模板语言的基本元素,如变量、控制结构(if/else、foreach)、内置函数和方法。 2. **数据模型**:描述如何将Java对象绑定到模板,以及如何访问对象的属性。 3. **模板设计**:...

    freemarker 简单项目示例

    1. **Freemarker基础** - Freemarker是一个基于模板的开源Java库,它允许开发者通过定义模板语言(FTL,Freemarker Template Language)与数据模型相结合,生成动态内容。 - FTL是一种声明式语言,它不包含任何...

    Java freemarker demo 【struts + freemarker】 自己修改的一个小例子

    此外,FreeMarker提供了一些高级特性,比如条件语句(`&lt;#if&gt;`)、循环(`&lt;#list&gt;`)、函数调用等,可以帮助你创建复杂的模板逻辑。同时,Struts框架也有许多扩展点,如拦截器、自定义结果类型等,可以增强应用的功能...

Global site tag (gtag.js) - Google Analytics