Tips:
- 以#开头的指令是freemarker的内置指令,用户自动的的指令以@开头
- Freemarker区分大小写
- 指令之间有包裹内容时需要结束标记,没有内容时不需要结束标记<#if condition> xxx </#if> <#include "/file"> ;与内置指令不同用户自定义指令以@开头,并且在没有包裹内容时,需要增加'/'标记,如<@myDirection condition />
- Freemarker指令列表大全 点我
- Freemarker内置变量大全 点我 ,访问内置变量使用'.' ,如 当前时间${.now}
- Freemarker内置引用大全 点我 ,使用内置引用很简单,如处理字符串的内置引用${name?low_case?trim}
- FreeMarker never converts a string to a number automatically, but it may convert a number to a string automatically.
- An attempt to print boolean values with interpolation causes an error and aborts template processing. For example this will cause an error: ${a == 2} and will not print ''true'' or something like that.
变量显示
${user.name}
${user.name!"Anonymous"}
当name为空时,设置默认值为Anonymous;此处有个问题是,如果user也为空,会抛出错误。
${(user.name)!"Anonymous"}
可避免上面的问题,无论user为空还是user.name为空都没关系。
${(user.name)!}
当没有指定默认值时,等同于${(user.name)!""},如,"Welcome_${(user.name)!}_" 将输出 Welcome__
控制结构指令
<#if user.name=="PC">welcome ${user.name}</#if>
<#if user.name==1>
price 1
<#else>
price bigger than 1
</#if>
<#if user.name??>user.name undefined</#if>
<#if (user.name)??>user or user.name undefined</#if>
列表循环指令
<#list users as user>
${user.name} ${user.age}
</#list>
页面包含指令
<#include "/footer.jsp">
注解指令
<#-- 这里是Freemarker的注解 -->
自动转义html,防止iframe等攻击
<#escape x as x?html>
...
<p>Title: ${book.title}</p>
<p>Description: <#noescape>${book.description}</#noescape></p>
<h2>Comments:</h2>
<#list comments as comment>
<div class="comment">
${comment}
</div>
</#list>
...
</#escape>
========================================================
Freemarker的基本类型
基础类型
String
Number
Date
容器类型
Hash表,没有顺序,根据key来获取value
数组,按照编号获取value
容器,使用list指令来获取,可以是数组也可以是hash表
分享到:
相关推荐
### FreeMarker 使用方法详解 #### 一、FreeMarker 概述与特性 ##### 1.1 通用目标 - **生成各种文本**:FreeMarker 的核心功能在于它能生成多种类型的文本输出,包括但不限于 HTML、XML、RTF、Java 源代码等。 -...
这个“freemarker学习例子”应该包含了一些基础到进阶的Freemarker用法,帮助初学者快速上手。 在Freemarker中,主要涉及以下几个核心概念: 1. **模板(Templates)**:模板是Freemarker的核心,它是HTML或其他文本...
赠送jar包:freemarker-2.3.30.jar;...使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。
这通常是通过`Configuration`对象的`setSharedVariable`方法完成的,将你的自定义指令类实例绑定到一个特定的名字,这个名字就是你在模板中使用的标签名。 3. 使用自定义标签:在模板文件中,你可以像使用内置标签...
接下来我们通过一个具体的示例来理解 Freemarker 的使用方法: ```html <title>Welcome! <!-- 注释部分 --> <h1>Welcome ${user}! <p>We have these animals: ${being.name} for ${being.price} Euros...
下面将详细讲解Freemarker的两种主要用法以及如何在Struts1.2中使用它。 1. 生成静态页面HTML Freemarker的一个重要用途是动态生成静态HTML页面。在Web应用中,动态生成静态页面可以提高页面的访问速度,因为静态...
赠送jar包:freemarker-2.3.31.jar;...使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。
这个"freemarker Demo"项目应该包含了基本的模板文件、Struts2配置以及相关的Java代码,通过实际运行和修改这些文件,初学者可以更好地理解Freemarker的工作原理和使用方法。在学习过程中,可以逐步尝试不同的表达式...
6. **模板文档**:插件可能还提供内置的Freemarker文档链接,便于查阅官方文档,学习和理解更多关于Freemarker的用法。 7. **整合开发环境**:由于Freemarker-IDE插件是为Eclipse设计的,所以它能够无缝集成到...
这个"freemarker-2.3.28.jar"是Freemarker库的一个具体版本,版本号为2.3.28,它是Java的一个可执行的JAR(Java Archive)文件,用于在Eclipse集成开发环境中作为插件使用。 在Freemarker的2.3.28版本中,我们可以...
4. **函数和方法**:Freemarker支持自定义函数和方法,可以使用内置的函数库,如字符串操作、数学计算等,也可以扩展自定义函数来满足特定需求。 5. **模板继承和导入**:通过`<#import>`和`<#extends>`,模板可以...
此外,`test`包下的测试类展示了一种使用Freemarker的方式,通过构建数据模型并将其传递给模板,实现了动态内容的生成。 综上所述,Freemarker是一种强大的模板引擎,它能够高效地处理复杂的数据结构,并生成各种...
使用Freemarker模版生成不同的静态文件,该工具类使用简单,方法说明:包含所需的参数,可以进行二次封装
对于初学者来说,使用这样的插件可以更快地掌握Freemarker语言的规则和用法。对于经验丰富的开发者,它可以帮助他们更快地完成日常编码任务,降低因为语法错误导致的问题。总的来说,"freemarker编辑插件"是提高...
5. **生成PDF**:使用Freemarker的`process`方法将模板和数据模型结合,然后通过一个PDF库(如iText或Apache PDFBox)将结果转换为PDF。以下是一个使用iText的例子: ```java StringWriter writer = new ...
`PDFTool`可能包含使用Freemarker的方法,如`processTemplate()`,此方法接受模板文件路径、数据模型和目标PDF输出路径作为参数。`FileController`则可能是处理HTTP请求的控制器,它接收一个HTML URL,并调用`PDF...
10. **与其他技术的集成**:FreeMarker 能很好地与Spring框架、Struts框架等结合使用,提供Web应用的视图层解决方案。同时,它也可以与各种数据源(如数据库、XML文件)交互,获取数据。 综上所述,FreeMarker是一...
7. **与Spring Framework集成**:在Spring MVC中,Freemarker可以作为视图解析器使用,通过配置`FreeMarkerConfigurer`和`FreeMarkerViewResolver`,可以轻松地将Freemarker与Spring的控制器层结合。 8. **模板继承...
Freemarker是一个强大的模板引擎,常用于Web应用中的视图层渲染,比如Java Web开发。它的核心设计理念是将数据...无论是初学者还是有经验的开发者,都可以从中找到自己需要的信息,提升对Freemarker的理解和使用技能。