常用语法 EG.一个对象BOOK 1.输出 $...{book.name} 空值判断:$...{book.name?if_exists }, $...{book.name?default(‘xxx’)}//默认值xxx $...{ book.name!"xxx"}//默认值xxx 日期格式:$...{book.date?string('yyyy-MM-dd')} 数字格式:$...{book?string.number}--20 $...{book?string.currency}--<#-- $20.00 --> $...{book?string.percent}—<#-- 20% --> 插入布尔值: <#assign foo=true /> $...{foo?string("yes","no")} <#-- yes -->
】内置方法
一:数字型 <#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")}
三:逻辑型 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:
】序列 由逗号分隔的变量列表,由方括号限定,类似java中的一维数组
<#assign seq = ["winter", "spring", "summer", "autumn"]> <#list seq as x> ${x_index + 1}. ${x}
<#if x_has_next>,
</#list>
输出 1. winter, 2. spring, 3. summer, 4. autumn
】Hashes(散列)-由逗号分隔的键-值列表,由大括号限定,键和值之间用冒号分隔:{"name":"green mouse", "price":150},键和值都是表达式,但是键必须是字符串。
<#assign ages = ...{"Joe":23, "Fred":25} + ...{"Joe":30, "Julia":18}> - Joe is $...{ages.Joe} - Fred is $...{ages.Fred} - Julia is $...{ages.Julia}
结果: - Joe is 30 - Fred is 25 - Julia is 18
】freemarker的空值和默认值
${user?if_exists}
${user?default('your name')}
判断对象是不是null <#if mouse?exists> Mouse found <#else>
或<#if book.name?? >
Mouse found
</#if>
list 空值判断 <#if bookList?size = 0>
】算术运算
Global site tag (gtag.js) - Google Analytics
|
相关推荐
本指南将深入探讨Freemarker模板的开发,帮助你掌握其主要特性和用法。 1. **模板语法** Freemarker的模板语言基于简单的文本文件,使用特定的指令和表达式。例如,`<#if>`用于条件判断,`<#foreach>`用于循环,`$...
### FreeMarker设计指南详解 #### 一、FreeMarker概述 FreeMarker是一个强大的模板引擎,用于将数据模型与表现层分离,使得设计者可以专注于页面布局和样式,而程序员则负责处理业务逻辑和数据处理。其核心思想是...
本开发指南将深入探讨FreeMarker的关键概念、指令、常用方法以及在Web开发中的注意事项。 1. **基本概念** - **Sequence**: 代表序列,对应Java中的List、数组等非键值对的集合,如ArrayList或数组。可以迭代遍历...
`FreeMarker概述.doc`可能是一个详细的文档,涵盖了FreeMarker的基本概念、语法、配置以及最佳实践。它可能包含如何创建模板、如何引用数据模型、如何控制流程(如条件语句和循环)、以及如何处理异常等信息。这个...
手册可能包含对FreeMarker语法的详细描述,包括模板元素(如变量、控制结构、内置函数等)、指令的使用方法,以及如何处理各种数据类型。此外,文档可能还涵盖了错误处理、性能优化和最佳实践等主题。 **4. 联系...
### Freemarker开发指南知识点 #### 1. 概述 - **定义**: Freemarker 是一个用纯 Java 编写的模板引擎,主要用于根据模板生成文本输出。它可以用来生成 HTML Web 页面,尤其是在 MVC 架构中非常实用。 - **设计...
二、FreeMarker语法 1. **变量表达式**: `${variable}` 用于输出变量的值。变量可以是Java对象的属性或方法的返回值。 2. **注释**: `<!--#ftl comment -->` 用于在模板中添加注释,这些注释不会出现在生成的...
这篇《FreeMarker入门指南》将深入介绍其基本概念、语法以及在实际项目中的应用。 一、FreeMarker简介 FreeMarker是一个基于模板的Java库,用于生成文本输出。它的主要工作原理是将模板(template)与数据模型...
这个插件版本为0.9.14,可能包含了对Freemarker语法的高亮显示、代码自动完成、错误检查、模板调试等功能。这些特性能够帮助开发者快速识别和修正模板中的问题,提高开发效率。`README.txt` 文件通常包含安装和使用...
Freemarker是一个强大的模板引擎,常用于Web应用中的视图层开发,特别是在Java环境中,它作为MVC设计模式的一部分,负责生成动态HTML或其他格式的文本。本教程将深入讲解Freemarker的核心概念、语法和实际应用,帮助...
2. **freemarker语法完整版.doc**: 这个文档将深入解析Freemarker的语法特性,包括模板注释、条件语句(如`<#if>`、`<#else>`、`<#choose>`)、循环结构(如`<#list>`)、逻辑运算符和比较运算符。同时,可能会讲解...
模板则包含了如何展示这些数据的指令,这些指令以特定的FreeMarker语法编写。FreeMarker引擎解析模板,根据数据模型填充模板中的占位符,生成最终的文本。 在FreeMarker中,有几个重要的概念需要理解: 1. **变量*...
二、FreeMarker语法特性 1. 输出表达式:`${expression}`用于输出变量或表达式的值,如果值为null,则不输出任何内容。 2. 变量赋值:`<#assign var = expr>`可以为变量赋值,`var`是变量名,`expr`是表达式。 3....
其次,`freemarker 插件 安装提示.txt`文件很可能是MyEclipse编辑器中安装Freemarker插件的步骤指南。MyEclipse是一款集成开发环境,对于Java开发者来说非常方便。Freemarker插件的安装可以让开发者在IDE内直接编辑...
- 安装后,Eclipse将识别`.ftl`文件,并应用特定的FreeMarker语法高亮,使得代码更易读。 2. **代码完成** - 插件提供代码补全功能,当在模板中输入变量或指令时,能够自动提示相关的FreeMarker关键字和自定义...
这些文档是学习和理解Freemarker语法、配置以及最佳实践的重要资源。 `freemarker.jar`是Freemarker库的二进制文件,它是实际运行时需要导入到Java项目的类路径中的,以便使用Freemarker的功能,如创建模板、解析...
这份指南涵盖了FreeMarker的核心概念、语法特性以及最佳实践。以下是一些关键知识点: 1. **基础概念**: - **模板**: 模板是HTML或其他格式的文本,其中包含可由FreeMarker替换的数据标记。 - **数据模型**: ...