`

freemaker学习笔记--其它内置方法

    博客分类:
  • java
阅读更多

一:数字型
<#assign answer=42/>
${answer}
${answer?string}  <#-- the same as ${answer} -->
${answer?string.number}
${answer?string.currency}
${answer?string.percent}

<#setting number_format="0.###E0"/>

${12345?string("0.####E0")}  


${answer?string("number")} 等同于:${answer?string.number}.

二:日期型:
预定义格式包括:short ,middle和long。

${openingTime?string.short}
${openingTime?string.medium}
${openingTime?string.long}

组合使用:${lastUpdated?string.short_long}
${lastUpdated?string("yyyy-MM-dd HH:mm:ss zzzz")}[iocblog.net 来源]

三:逻辑型
foo?string
foo?string("yes", "no")

四:序列的内置方法:
first

last

seq_contains
${x?seq_contains("blue")?string("yes", "no")}

seq_index_of

seq_last_index_of

reverse

size

sort

sort_by
多层次的hash排序

<#assign members = [
    {"name": {"first": "Joe", "last": "Smith"}, "age": 40},
    {"name": {"first": "Fred", "last": "Crooger"}, "age": 35},
    {"name": {"first": "Amanda", "last": "Fox"}, "age": 25}]>
Sorted by name.last:
<#list members?sort_by(['name', 'last']) as m>
- ${m.name.last}, ${m.name.first}: ${m.age} years old
</#list> 

chunk:将一个序列分解成几个序列。

<#assign seq = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j']>

<#list seq?chunk(4) as row>
  <#list row as cell>${cell} </#list>
</#list>

<#list seq?chunk(4, '-') as row>
  <#list row as cell>${cell} </#list>
</#list>
chunk经常用于分栏或者表格输出的格式。

五:hash内置方法:

keys:
values:

六:很少使用或者专家级的内置方法:
byte,double,float,int,long,short。

eval

has_content:变量存在,不是指null也不是空串,一般情况下可以使用expr!?size > 0 or expr!?length > 0 代替expr?has_content

interpret将一个字符串解析为ftl模版,产生一个TemplateTransformModel对象。
<#assign x=["a", "b", "c"]>
<#assign templateSource = "<#list x as y>${y}</#list>">
<#assign inlineTemplate = templateSource?interpret>
<@inlineTemplate>def/@inlineTemplate

is_...检查变量类型:

Built-in

Returns true if the value is a ...

is_string

string

is_number[iocblog.net 来源]

number

is_boolean

boolean

is_date

date (all types: date-only, time-only and date-time)

is_method

method

is_transform

transform

is_macro

macro

is_hash

hash

is_hash_ex

extended hash (i.e. supports ?keys and ?values)

is_sequence

sequence

is_collection

collection

is_enumerable

sequence or collection

is_indexable

sequence

is_directive

macro or transform

is_node

node


namespace:返回宏变量的命名空间,只能用于宏。

new:创建一个TemplateModel实现的变量。
<#assign word_wrapp = "com.acmee.freemarker.WordWrapperTransform"?new()>

分享到:
评论

相关推荐

    freemarker学习资料汇总

    本压缩包集合了丰富的Freemarker学习资源,涵盖从基础到进阶的各种知识点,以下是这些文档中可能包含的详细内容: 1. **Freemarker中文手册.pdf**: 这份手册通常会详细介绍Freemarker的基本概念,如模板语言、...

    FreeMarker学习笔记

    本学习笔记将深入探讨FreeMarker的核心概念、语法特性以及在实际项目中的应用。 1. **FreeMarker基本概念** - **模板**: FreeMarker的工作核心是模板,它是HTML或XML文档,其中嵌入了特定的FreeMarker指令和变量。...

    freemarker及jeecms标签使用学习文档

    - `Freemaker_入门+深入+开发指南+学习笔记.doc`:这份文档提供了从基础到高级的Freemarker学习路径,包括基本语法、模板设计原则和实践案例。 - `freemaeker全面教程.doc`:这份教程全面覆盖了Freemarker的各个...

    struts2学习笔记.doc

    ### Struts2学习笔记知识点概览 #### 一、环境搭建 **1.1 Struts2简介** - **Struts2概述**:Struts2是一个开源的MVC框架,它结合了Struts 1.x、WebWork和其他一些框架的优点。Struts2的主要目标是简化Web应用程序...

    笔记-Struts2不完美的知识点整理.docx

    5. **多种视图技术支持**:除了内置的FreeMarker模板引擎,Struts2还支持JSP、Velocity等视图技术,增强了视图的可定制性。 **Struts2在三层架构中的位置** 在经典的三层架构中,Struts2主要位于表现层,负责接收...

    Freemarker 语法规则

    通过阅读`freemarker语法.docx`和`freemarker笔记1.txt`,你可以更深入地了解这些规则,并结合实际项目进一步掌握Freemarker的使用。同时,参考提供的博客链接(https://kingpingping.iteye.com/blog/1144477),...

    Struts2学习笔记

    ### Struts2学习笔记知识点梳理 #### 一、Struts2框架概述 - **背景**:Struts2作为Struts1的升级版本,融合了WebWork框架的优点,由Apache基金会维护,是一个开源、免费的MVC框架。尽管随着时间的推移,Spring MVC...

    SpringBoot学习笔记完整教程

    Spring Boot 是一个基于 Spring 框架的快速开发...这个完整的 Spring Boot 学习笔记涵盖了从基础到进阶的各个方面,通过学习和实践,你可以掌握 Spring Boot 开发的核心技能,从而高效地构建高质量的 Java 后端应用。

    java与freemarke学习笔记

    通过这个学习笔记,你可以掌握如何用Java构建数据模型,如何使用FreeMarker模板语法来动态渲染页面,以及如何在实际项目中整合这两者。这将帮助你更好地理解和实践Java与FreeMarker的协同工作,提升Web应用的开发...

    freemarker资料汇总

    最后,基础语法的文本文件《Freemarker基础语法.txt》和《Freemarker学习归纳 .txt》是对Freemarker核心语法的精炼总结,方便初学者快速入门。这些文件可能包括变量、表达式、控制流、注释等基本元素,是学习...

    Struts2.1学习笔记

    ### Struts2.1学习笔记 #### Struts2的来源与优点 - **来源**:Struts2是在WebWork2的基础上发展起来的,它继承了WebWork2的优点,并且进行了改进,使其更适合现代Web应用程序的需求。与Struts1相比,Struts2的...

    freemark学习笔记

    以下是对FreeMarker学习笔记的详细解释: 1. **基本语法** - **模板**:FreeMarker模板是由HTML、XML或其他文本格式组成的文件,其中包含FTL(FreeMarker Template Language)指令。模板设计者无需关注数据来源,...

    Freemaker_入门+深入+开发指南+学习笔记

    member_function()`:使用内置函数对变量进行转换。 - `stringA[M..N]`:获取字符串的子串。 - `{key:value, key2:value2}`:定义哈希表。 - `[item0, item1, item2]`:定义序列。 - `hash0[key0]`:访问哈希表中的...

    springmvc学习笔记

    本学习笔记将深入探讨Spring MVC的核心概念、配置、控制器、视图解析、数据绑定、异常处理等关键知识点。 1. **核心概念** - **DispatcherServlet**:Spring MVC 的核心组件,负责接收请求并分发到相应的处理器。 ...

    Struts学习笔记

    ### Struts学习笔记 #### 一、Struts2框架简介 Struts2是一个开源的、用于开发Java EE Web应用程序的MVC框架。它基于Struts 1进行了改进,提供了更加强大和灵活的功能,比如拦截器、动态方法调用、类型转换等。...

    struts学习笔记

    - **第三方依赖**:commons-fileupload-1.2.1.jar、commons-io-1.3.2.jar、commons-logging-1.0.4.jar、xwork-2.1.2.jar、ognl-2.6.11.jar、freemarker-2.3.13.jar - **获取配置文件**:struts.xml,需放置于项目的...

    Struts2学习笔记2011(详细图解)

    以上就是Struts2学习笔记中的主要内容,通过这些知识点的学习,开发者能够熟练地搭建和使用Struts2框架,构建高效、稳定的Web应用。同时,理解并掌握这些概念有助于进一步探索Struts2的高级特性,如拦截器、插件系统...

    freemaker struts2

    `freemarker学习笔记.doc`可能包含了如何在Struts2中集成和使用Freemarker模板的详细步骤。 2. **数据绑定**:在Freemarker模板中,可以使用`&lt;@s.action&gt;`或`&lt;@s.property&gt;`等标签来直接访问Struts2 Action中的属性...

Global site tag (gtag.js) - Google Analytics