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

Freemarker 初学

    博客分类:
  • Java
阅读更多
原文地址:http://dongwei.iteye.com/blog/231322

第一招:迭代Map
      假设你有一个Map,像这样:
Xml代码
{"name":"mouse", "price":50 , "weight":30} 

如何来迭代输出?
Html代码
<#-- 这里模拟了一个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> 

输出结果:
Html代码
name = mouse; price = 50; weight = 30;  

第二招:如何判定字符串相等
      这个有点小题大作,呵呵,其实很简单
Html代码
<#-- 定义了一种动物——狗 --> 
<#assign annimal = "Dog"> 
 
<#-- 做一下条件判断,如果是狗就输出"Wang! Wang!" 
注意:这里使用一个"="--> 
<#if annimal = "Dog"> 
Wang! Wang! 
<#else> 
Ga! Ga! 
</#if> 

输出结果:
Html代码
Wang! Wang!  

第三招:处理空值
      先要说明的是,在freemarker中,如果你试图去访问一个不存在的值(null),或者该值在访问时还没有被初始化,
那么它会毫不犹豫的抛给一个错误,并且立即终止模板的执行过程。为什么这么变态?

如何对付这样的情况?
答案:在它访问这个值失败的时候,给它一个默认的值!嘻嘻……

怎么赋默认值?
用这样的语法:
unsafe_expr!default_expr 或 unsafe_expr! 或 (unsafe_expr)!default_expr 或 (unsafe_expr)!

例子:
Html代码
<#-- 想要输出mouse,但是它没有被赋值,所以指定默认值为"No mouse" 
当然"!"后面的这个值可以是一个表达式--> 
${mouse!"No mouse."} 
 
<#-- 给mouse赋值 "Jerry" --> 
<#assign mouse="Jerry"> 
 
<#-- 再次访问mouse --> 
${mouse!"No mouse."} 

输出结果:
Html代码
No mouse. 
Jerry  

另外对于"!"后面没有写任何值的情况,那么它的值可能是空String、空sequence 、空hash。
但是如果你想默认值是0或者false,那么你最好还是显式的指定,因为它不会对你那么友好的(Bad luck!)
还需要注意的是:
Html代码
1. product.color!"red"  
2. (product.color)!"red"  
 
这两种写法所表示的含义是不一样的: 
第一种写法只处理color为空的情况,对于product为空则束手无策。 
第二种写法则可以同时处理product及color同时(或任意)为空的情况。 

插播,如何判断空值?
语法:unsafe_expr?? 或 (unsafe_expr)?? 返回值为true和false

第四招:几个常用的函数
    使用函数的方式就像这样:user?upper_case 简单吧?
字符串函数:
html:将会把一些特殊的html字符替换掉(比如:把 "<" 替换为"&lt;")
cap_first:首字母大写
lower_case:转化为小写
upper_case:转化为大写
trim:去掉首尾的空白,包括空格、Tab、回车、换行

例子:
Html代码
<#-- 定义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 Demo 适用于freemarker初学

    这个"freemarker Demo"是一个适合初学者的示例项目,旨在帮助新接触Freemarker的开发者快速理解和上手。 1. **Freemarker简介** Freemarker是一个基于模板的开源模板语言,它与Java代码分离,使得开发者可以专注于...

    初学FreeMarker

    **FreeMarker初学者指南** FreeMarker是一个开源模板引擎,它主要应用于Java环境中,用于生成动态内容,如HTML、XML或其他文本格式的文档。这个技术在Web开发中特别常见,因为它可以将业务逻辑与表现层(视图)分离...

    FreeMarker中文手册

    **FreeMarker** 是一个强大的模板引擎,主要用于生成动态HTML、XML或其他格式的文本输出,尤其在Web应用开发中被广泛使用。...这份文档详细且全面,是FreeMarker初学者和进阶者不可或缺的参考资料。

    FreeMarker2.3.23官方中文文档

    FreeMarker是一款强大的、开源的模板引擎,主要用于生成动态HTML、XML或其他格式的文本输出,尤其在Web应用开发中被...这份文档详尽地涵盖了FreeMarker的各个方面,无论是初学者还是经验丰富的开发者,都能从中受益。

    FreeMarker手册-Freemarker 2.3.18

    FreeMarker是一款强大的、开源的模板引擎,主要用于生成动态HTML、XML或其他格式的文本输出,尤其在Web应用开发中被广泛使用。...无论你是初学者还是经验丰富的开发者,这本手册都能为你提供必要的指导和支持。

    freemarker

    这个压缩包文件“freemarker练习”很可能是为了帮助初学者理解并熟悉Freemarker的基本用法和核心概念。 首先,让我们深入了解一下Freemarker的核心概念: 1. **模板(Template)**:模板是Freemarker的灵魂,它...

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

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

    freemarker编辑插件

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

    freemarker-2.3.22

    通过这个压缩包提供的资源,开发者可以全面地学习和使用Freemarker,无论是初学者还是经验丰富的开发者,都能从中受益。在实际开发中,结合具体项目需求,运用Freemarker的强大功能,可以构建出高效、易维护的视图层...

    velocity和freemarker的比较

    - **学习曲线**:Velocity的学习曲线较平缓,适合初学者,而FreeMarker可能需要更多时间去熟悉其高级特性。 - **灵活性**:FreeMarker的灵活性更强,可以更好地处理复杂逻辑,而Velocity更强调模板的纯粹性,尽量...

    freemarker生成xml示例

    这个示例是关于如何使用Freemarker来生成XML文件,对于初学者来说,理解这个过程有助于掌握Freemarker的基本用法和XML的生成技巧。 在Java中,Freemarker与数据模型结合,通过模板文件生成输出。对于XML生成,首先...

    freemarker入门文档及例子

    本入门文档结合实例,旨在帮助初学者快速理解并掌握Freemarker的基本用法。 一、Freemarker基本概念 1. 模板:Freemarker模板是纯文本文件,其中包含静态文本和控制结构,如条件语句和循环。它们用来生成最终输出。...

    freemarker中文学习资料

    Freemarker是一个强大的模板...这个“freemarker中文学习资料”涵盖了以上所有知识点,无论你是初学者还是经验丰富的开发者,都能从中受益。通过深入学习和实践,你可以熟练掌握Freemarker,提升Web应用的开发效率。

    freemarker操作手册-完整freemarker教程

    Freemarker是一个强大的模板引擎,常用于Web应用中的...无论是初学者还是经验丰富的开发者,这份手册都是深入理解和应用Freemarker不可或缺的资源。记得配合`freemarker.pdf`文件进行学习,以获得更直观的示例和解释。

    FreeMarker相关学习文档

    提供的"FreeMarker相关学习文档"可能包括模板语法详解、最佳实践、示例代码等内容,可以帮助初学者快速上手。通过阅读这些资料,你可以深入了解FreeMarker的各个方面,从而更好地利用这个强大的模板引擎。 总结,...

    freemarker 2.3.10架包

    这个“freemarker”压缩包可能包含Freemarker的JAR文件、文档、示例代码等,可以帮助初学者快速上手。在解压后,可以查阅官方文档,运行示例,或直接在项目中引入JAR来实践这些知识点。通过深入理解和熟练运用,你...

    freemarker学习资料汇总

    Freemarker是一个强大的Java模板引擎,常用于生成动态HTML、XML等Web页面,尤其是在MVC架构中,作为视图层的技术选型。本压缩包集合了丰富的...无论是初学者还是经验丰富的开发者,这些资料都能提供宝贵的指导。

    freeMarker 教程 word版本的 很适合初学者

    本教程针对初学者,将深入介绍FreeMarker的核心概念、配置、语法以及实际应用。 1. **核心概念** - **模板**: FreeMarker的核心是模板,它是HTML、XML或任何其他文本格式的文件,其中包含了动态数据占位符。 - **...

    freemarker java模板技术 很详细的注释

    这个压缩包中的内容很可能包含了一系列关于Freemarker的详细注释,旨在帮助初学者理解其工作原理和使用方法。让我们深入探讨一下Freemarker在Java模板技术中的重要性和相关知识点。 1. **Freemarker的基本概念** -...

    freemarker 可运行java 小demo

    在这个"freemarker 可运行java 小demo"中,你将找到一个可以直接运行的Java项目,这对于初学者了解和学习Freemarker的用法非常有帮助。 首先,让我们来深入理解一下Freemarker的核心概念。Freemarker是一个基于模板...

Global site tag (gtag.js) - Google Analytics