第一招:迭代Map
假设你有一个Map,像这样:
{"name":"mouse", "price":50 , "weight":30}
如何来迭代输出?
<#-- 这里模拟了一个Map集合,定义了三对键值 -->
<#assign h = {"name":"mouse", "price":50, "weight":30}>
<#-- h?keys 将Map的key取出赋值,实质是调用了一个包装类的方法,
从这里我们也可以学到如何去调用一个类的方法 -->
<#assign keys = h?keys>
<#-- 关键点:${h[key]} 通过这样的方式,访问到了Map中的value属性 -->
<#list keys as key>${key} = ${h[key]}; </#list>
输出结果:
name = mouse; price = 50; weight = 30;
第二招:如何判定字符串相等
这个有点小题大作,呵呵,其实很简单
<#-- 定义了一种动物——狗 -->
<#assign annimal = "Dog">
<#-- 做一下条件判断,如果是狗就输出"Wang! Wang!"
注意:这里使用一个"="-->
<#if annimal = "Dog">
Wang! Wang!
<#else>
Ga! Ga!
</#if>
输出结果:
Wang! Wang!
第三招:处理空值
先要说明的是,在freemarker中,如果你试图去访问一个不存在的值(null),或者该值在访问时还没有被初始化,
那么它会毫不犹豫的抛给一个错误,并且立即终止模板的执行过程。为什么这么变态?
如何对付这样的情况?
答案:在它访问这个值失败的时候,给它一个默认的值!嘻嘻……
怎么赋默认值?
用这样的语法:
unsafe_expr!default_expr 或 unsafe_expr! 或 (unsafe_expr)!default_expr 或 (unsafe_expr)!
例子:
<#-- 想要输出mouse,但是它没有被赋值,所以指定默认值为"No mouse"
当然"!"后面的这个值可以是一个表达式-->
${mouse!"No mouse."}
<#-- 给mouse赋值 "Jerry" -->
<#assign mouse="Jerry">
<#-- 再次访问mouse -->
${mouse!"No mouse."}
输出结果:
No mouse.
Jerry
另外对于"!"后面没有写任何值的情况,那么它的值可能是空String、空sequence 、空hash。
但是如果你想默认值是0或者false,那么你最好还是显式的指定,因为它不会对你那么友好的(Bad luck!)
还需要注意的是:
1. product.color!"red"
2. (product.color)!"red"
这两种写法所表示的含义是不一样的:
第一种写法只处理color为空的情况,对于product为空则束手无策。
第二种写法则可以同时处理product及color同时(或任意)为空的情况。
插播,如何判断空值?
语法:unsafe_expr?? 或 (unsafe_expr)?? 返回值为true和false
第四招:几个常用的函数
使用函数的方式就像这样:user?upper_case 简单吧?
字符串函数:
html:将会把一些特殊的html字符替换掉(比如:把 "<" 替换为"<")
cap_first:首字母大写
lower_case:转化为小写
upper_case:转化为大写
trim:去掉首尾的空白,包括空格、Tab、回车、换行
例子:
<#-- 定义test值为"Tom & Jerry" -->
<#assign test = "Tom & Jerry">
${test?html}
${test?upper_case?html}
输出为:
Tom & Jerry
TOM & JERRY
序列(也就是常说的List或Set等集合)函数:
size:显示该序列的大小
数学函数:
int:取整(例如: -1.9?int 返回值是 -1)
到这里吧,先到这里了……
分享到:
相关推荐
本教程针对初学者,将深入介绍FreeMarker的核心概念、配置、语法以及实际应用。 1. **核心概念** - **模板**: FreeMarker的核心是模板,它是HTML、XML或任何其他文本格式的文件,其中包含了动态数据占位符。 - **...
本教程是专为初学者设计的中文版,旨在帮助你快速掌握Freemarker的核心概念和使用技巧。 在开始学习之前,了解Freemarker的基本理念至关重要。它是基于MVC(Model-View-Controller)架构模式的,主要负责View部分,...
这个"freemarker Demo"是一个适合初学者的示例项目,旨在帮助新接触Freemarker的开发者快速理解和上手。 1. **Freemarker简介** Freemarker是一个基于模板的开源模板语言,它与Java代码分离,使得开发者可以专注于...
Freemarker是一个强大的模板引擎,常用于Web应用中的...无论是初学者还是经验丰富的开发者,这份手册都是深入理解和应用Freemarker不可或缺的资源。记得配合`freemarker.pdf`文件进行学习,以获得更直观的示例和解释。
Freemarker是一款强大的模板引擎,用于将数据模型与表示层分离,从而实现在Web开发中的动态页面生成。根据所提供的文件信息,我们可以详细探讨以下几个关键的知识点: ### 1. 创建配置实例 在Freemarker中,`...
### 标题解析:“FreeMarker实例教程,手把手教你FreeMarker的方方面面” 此标题清晰地表明了该教程的目标是提供关于FreeMarker全面的教学指导,适合所有希望深入学习FreeMarker的开发者。通过“手把手”这一表述...
此资源包“Freemarker2.3.16_带简单教程”提供了Freemarker 2.3.16版本的相关学习材料,包括官方文档和教程,帮助初学者快速上手。 《freemarker中文手册文档.doc》是Freemarker的中文参考手册,详细介绍了...
Freemarker是一个强大的模板引擎,常用于Web应用中的视图层开发,与Java后端框架如Spring、Struts等结合紧密。本教程手册基于版本2.3.16,将全面...无论是初学者还是经验丰富的开发者,这都将是一份宝贵的参考资料。
Freemarker是一个强大的模板引擎,常用于Web应用中的视图层渲染,尤其在Java领域广泛应用。... ...所以,无论你是初学者还是经验丰富的开发者,对Freemarker的理解和应用都将极大地提升你的开发效率。
### FreeMarker教程精要 **FreeMarker** 是一种强大的模板引擎,主要用于生成动态网页或用于任何文本输出场景。本文档将深入探讨FreeMarker的核心组成部分及其使用方法,包括文本、注释、插值以及FTL(FreeMarker ...
Freemaker是一个强大的模板引擎,FreeMarker教程适合初学者学习
从提供的文件名"FreeMarkerl_zh_CN.pdf"来看,这应该是一份中文版的Freemarker教程文档,对于中文使用者来说,阅读和学习起来会更加方便。通过详细研读这份教程,开发者不仅可以掌握Freemarker的基本使用,还能深入...
使用FreeMarker实现这个目标,主要有以下几个步骤: 1. **理解FreeMarker模板语言**:FreeMarker的核心是模板文件,它是一种简单的文本文件,包含HTML结构以及特殊的FreeMarker指令。这些指令用于嵌入变量和控制...
基于freemarker的代码生成器,以spring+mybatis 架构模式生成的代码,亲测,好用,欢迎下载
Freemarker是一个强大的模板引擎,常用于Web应用中的视图层渲染...通过本教程,你将能全面了解并熟练运用Freemarker,提升你的JSP表现层开发能力。记得实践是检验真理的唯一标准,动手操作是掌握Freemarker的最佳途径。
2. **非侵入性**:FreeMarker不修改你的Java代码,只是作为生成动态内容的工具。 3. **变量和表达式**:在模板中,你可以使用${}表达式来访问数据模型中的变量。例如,`${user.name}`将输出用户对象的name属性。 4. ...
本教程将深入介绍Freemarker的基础知识、核心概念以及实际应用,帮助你成为一名熟练的Freemarker用户。 一、Freemarker基础 1. **模板语言**:Freemarker是一种声明式模板语言,它与编程语言分离,使得开发者可以...
FreeMarker 是一款模板引擎:一种基于模板的、用来生成输出文本(任何来自于 HTML 格式的文本用来自动生成源代码)的通用工具。它是为 Java 程序员提供的一个开发包或者说是类库。它不是面向最终用户,而是为程序员...
本教程旨在帮助初学者快速掌握FreeMarker的基本概念和使用方法,通过详实的讲解与实例相结合的方式,让你能够轻松上手。 1. **FreeMarker基础** - **定义**:FreeMarker是一个Java模板语言,它将数据模型与视图...