`
wolfcame
  • 浏览: 79681 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

freemarker的用法

 
阅读更多

Tips:

 

  1. 以#开头的指令是freemarker的内置指令,用户自动的的指令以@开头
  2. Freemarker区分大小写
  3. 指令之间有包裹内容时需要结束标记,没有内容时不需要结束标记<#if condition> xxx </#if> <#include "/file"> ;与内置指令不同用户自定义指令以@开头,并且在没有包裹内容时,需要增加'/'标记,如<@myDirection condition />
  4. Freemarker指令列表大全 点我
  5. Freemarker内置变量大全 点我 ,访问内置变量使用'.' ,如 当前时间${.now}
  6. Freemarker内置引用大全 点我 ,使用内置引用很简单,如处理字符串的内置引用${name?low_case?trim}
  7. FreeMarker never converts a string to a number automatically, but it may convert a number to a string automatically.
  8. 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 使用方法详解 #### 一、FreeMarker 概述与特性 ##### 1.1 通用目标 - **生成各种文本**:FreeMarker 的核心功能在于它能生成多种类型的文本输出,包括但不限于 HTML、XML、RTF、Java 源代码等。 -...

    freemarker学习例子

    这个“freemarker学习例子”应该包含了一些基础到进阶的Freemarker用法,帮助初学者快速上手。 在Freemarker中,主要涉及以下几个核心概念: 1. **模板(Templates)**:模板是Freemarker的核心,它是HTML或其他文本...

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

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

    freemarker 自定义freeMarker标签

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

    超强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两种用法,struts1.2的

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

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

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

    freemarker Demo 适用于freemarker初学

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

    freemarker-ide插件

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

    freemarker-2.3.28.jar

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

    freemarker-2.3.23jar

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

    freemarker

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

    Freemarker模版公用方法

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

    freemarker编辑插件

    对于初学者来说,使用这样的插件可以更快地掌握Freemarker语言的规则和用法。对于经验丰富的开发者,它可以帮助他们更快地完成日常编码任务,降低因为语法错误导致的问题。总的来说,"freemarker编辑插件"是提高...

    freemarker解析成pdf

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

    通过freemarker模板 生成PDF

    `PDFTool`可能包含使用Freemarker的方法,如`processTemplate()`,此方法接受模板文件路径、数据模型和目标PDF输出路径作为参数。`FileController`则可能是处理HTTP请求的控制器,它接收一个HTML URL,并调用`PDF...

    FreeMarker

    10. **与其他技术的集成**:FreeMarker 能很好地与Spring框架、Struts框架等结合使用,提供Web应用的视图层解决方案。同时,它也可以与各种数据源(如数据库、XML文件)交互,获取数据。 综上所述,FreeMarker是一...

    freemarker.jar用于jdk1.8下使用

    7. **与Spring Framework集成**:在Spring MVC中,Freemarker可以作为视图解析器使用,通过配置`FreeMarkerConfigurer`和`FreeMarkerViewResolver`,可以轻松地将Freemarker与Spring的控制器层结合。 8. **模板继承...

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

    Freemarker是一个强大的模板引擎,常用于Web应用中的视图层渲染,比如Java Web开发。它的核心设计理念是将数据...无论是初学者还是有经验的开发者,都可以从中找到自己需要的信息,提升对Freemarker的理解和使用技能。

Global site tag (gtag.js) - Google Analytics