`
lazy
  • 浏览: 25795 次
文章分类
社区版块
存档分类
最新评论

freemarker高级用法,不常见的写法

阅读更多
基本的语法都不讲了,网上还是比较多的,下面这些都是从ftl的帮助文档里摘抄,加上自己的翻译和体会

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>
单独一个"!"是什么意思? 相当于default,即有下面的写法
${item.name?default("no name")}
等于
${item.name!"no name"}
甚至可以组合起来判断某个值为空时,显示另一个的值,如
${item.name!(item.title!!)}


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
按从上到下,最先匹配的最先导入。

转贴请注明出处.http://lazy.iteye.com
2
0
分享到:
评论

相关推荐

    超强freemarker使用总结,有示例有讲解,可做快速查询手册!!

    接下来我们通过一个具体的示例来理解 Freemarker 的使用方法: ```html &lt;title&gt;Welcome! &lt;!-- 注释部分 --&gt; &lt;h1&gt;Welcome ${user}! &lt;p&gt;We have these animals: ${being.name} for ${being.price} Euros...

    freemarker(FTL)常见语法大全

    ### Freemarker(FTL)常见语法详解 Freemarker是一种基于模板引擎技术的软件,用于生成文本输出。它被广泛应用于Web开发中,用来生成HTML页面或其他格式的文档。Freemarker使用简单直观的语法,使得开发者能够轻松...

    freemarker-2.3.30-API文档-中文版.zip

    赠送jar包:freemarker-2.3.30.jar;...使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。

    freemarker 自定义freeMarker标签

    这通常是通过`Configuration`对象的`setSharedVariable`方法完成的,将你的自定义指令类实例绑定到一个特定的名字,这个名字就是你在模板中使用的标签名。 3. 使用自定义标签:在模板文件中,你可以像使用内置标签...

    freemarker两种用法,struts1.2的

    下面将详细讲解Freemarker的两种主要用法以及如何在Struts1.2中使用它。 1. 生成静态页面HTML Freemarker的一个重要用途是动态生成静态HTML页面。在Web应用中,动态生成静态页面可以提高页面的访问速度,因为静态...

    freemarker初探 附 freemarker中文手册 与 struts2 checkboxlist的研究

    总结一下,本篇文章介绍了Freemarker的基本用法,包括如何设置上下文、加载模板以及如何在模板中使用数据。同时,也涉及到了Struts2中的`checkboxlist`标签,展示了如何在视图层处理多选操作。了解这些内容后,...

    Freemarker模版公用方法

    使用Freemarker模版生成不同的静态文件,该工具类使用简单,方法说明:包含所需的参数,可以进行二次封装

    freemarker Demo 适用于freemarker初学

    这个"freemarker Demo"项目应该包含了基本的模板文件、Struts2配置以及相关的Java代码,通过实际运行和修改这些文件,初学者可以更好地理解Freemarker的工作原理和使用方法。在学习过程中,可以逐步尝试不同的表达式...

    freemarker-2.3.31-API文档-中文版.zip

    赠送jar包:freemarker-2.3.31.jar;...使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。

    freemarker-ide插件

    6. **模板文档**:插件可能还提供内置的Freemarker文档链接,便于查阅官方文档,学习和理解更多关于Freemarker的用法。 7. **整合开发环境**:由于Freemarker-IDE插件是为Eclipse设计的,所以它能够无缝集成到...

    freemarker

    此外,`test`包下的测试类展示了一种使用Freemarker的方式,通过构建数据模型并将其传递给模板,实现了动态内容的生成。 综上所述,Freemarker是一种强大的模板引擎,它能够高效地处理复杂的数据结构,并生成各种...

    freemarker解析成pdf

    5. **生成PDF**:使用Freemarker的`process`方法将模板和数据模型结合,然后通过一个PDF库(如iText或Apache PDFBox)将结果转换为PDF。以下是一个使用iText的例子: ```java StringWriter writer = new ...

    freemarker导出doc及docx

    但Freemarker并不仅限于此,它也可以用于生成各种类型的文档,如Word文档(.doc, .docx)。 **2. SpringBoot整合Freemarker** SpringBoot简化了Freemarker的集成。在SpringBoot项目中,只需在`pom.xml`中添加...

    freemarker-2.3.28.jar

    这个"freemarker-2.3.28.jar"是Freemarker库的一个具体版本,版本号为2.3.28,它是Java的一个可执行的JAR(Java Archive)文件,用于在Eclipse集成开发环境中作为插件使用。 在Freemarker的2.3.28版本中,我们可以...

    FreeMarker 手册

    FreeMarker的手册是一个详细的指南,它不仅介绍了FreeMarker的基本概念和使用方法,还深入到了高级主题,如自定义指令、命名空间、空白处理等。通过手册的学习,开发者可以掌握如何创建配置实例、定义数据模型、获取...

    freemarker-2.3.23jar

    4. **函数和方法**:Freemarker支持自定义函数和方法,可以使用内置的函数库,如字符串操作、数学计算等,也可以扩展自定义函数来满足特定需求。 5. **模板继承和导入**:通过`&lt;#import&gt;`和`&lt;#extends&gt;`,模板可以...

    eclipse的freemarker插件

    总的来说,"eclipse的freemarker插件"是Eclipse开发环境中不可或缺的工具之一,它极大地提升了Freemarker模板开发的便捷性和专业性,使得开发者能够更加专注于业务逻辑,而非模板语法的细节。如果你在Eclipse中处理...

    Struts2 与Freemarker 的配置方法

    Struts2 和 Freemarker 的整合是企业级Java Web开发中常用的技术组合,它们结合使用能够实现灵活、高效的表现层设计。Struts2 是一个强大的MVC框架,而Freemarker则是一个模板引擎,用于生成动态内容。以下是关于...

Global site tag (gtag.js) - Google Analytics