reemarker的基本语法及入门基础 一、freemarker模板文件(*.ftl)的基本组成部分 1. 文本:直接输出的内容部分 2. 注释:不会输出的内容,格式为<#-- 注释内容 --> 3. 取值(插值):代替输出数据模型的部分,格式为${数据模型}或#{数据模型} 4. ftl指令:Freemarker指令,类似于HTML标记。 内建指令:开始标签:<#directivename parameter> 结束标签:</#directivename> 空标签:<#directivename parameter/> 自定义指令:开始标签:<@directivename parameter> 结束标签:</@directivename> 空标签:<@directivename parameter/> 至于什么是内建指令,什么是自定义指令 我会在下面叙述到。 二、Freemarker语法及使用方法 1. 取值(插值)指令及适用类型: (1) ${var} 适用类型:java中常用的八大基本类型以及我们的String引用类型,但是,freemarker中boolean类型显示时true==yes false==no 示例: 在后台文件中定义变量 String strVar = "世界你好"; int intVar = 10; boolean booVar = true; 在页面中获取变量: String获取:<font color="red"> ${strVar} </font><br> int获取:<font color="red"> ${intVar} </font><br> boolean获取:<font color="red"> ${booVar?string("yes","no")} </font> 展示结果: String获取:世界你好 int获取:10 boolean获取:yes (2)${var!} 适用类型:对 null 或者不存在的对象进行取值,可以设置默认值,例:${var!'我是默认值'} 即,有值时显示正常值,无值时显示默认值 示例: 在后台文件中定义变量 String strVar = "世界你好"; String str = null; 在页面中获取变量: String获取:<font color="red"> ${strVar!"我是空"} </font><br> str获取:<font color="red"> ${str!} </font><br> str获取:<font color="red"> ${str!"默认"} </font><br> 展示结果: String获取:世界你好 str获取: str获取:默认 (3)${封装对象.属性} 适用类型:对封装对象进行取值,例:${User.name} 示例: 在后台文件中封装对象User[ name, age ] String name = "姓名"; int age = 18; 在页面中获取变量: name获取:<font color="red"> ${User.name} </font><br> age获取:<font color="red"> ${User.age} </font><br> 展示结果: name获取:姓名 age获取:18 (4)${date?String('yyyy-MM-dd')} 适用类型:对日期格式进行取值,在这里我要强调的是,定义Date类型的变量时,java.util.Date无法输出日期,须使用java.sql.Date 示例: 在后台文件中定义变量 java.sql.Date date = new Date().getTime(); java.sql.Date time = new Date().getTime(); java.sql.Date datetime = new Date().getTime(); 在页面中获取变量: date获取:<font color="red"> ${date?string('yyyy-MM-dd')} </font><br> time获取:<font color="red"> ${date?string('HH:mm:ss')} </font><br> datetime获取:<font color="red"> ${date?string('yyyy-MM-dd HH:mm:ss')} </font><br> 展示结果: name获取:姓名 age获取:18 (5)${var?html} 适用类型:转义HTML内容 示例: 在后台文件中封装变量Menu[ name, model ] Menu m = new Menu(); m.setName(" freemarker "); m.setModel("<font color = 'red'>我只是个菜单</font>"); 在页面中获取变量: 非转义获取:<font color="red"> ${m.model} </font><br> 转义获取: ${m.model?html} </font><br> 展示结果: 非转义获取:我只是个菜单 转义获取:<font color = 'red'>我只是个菜单</font> (6)<#assign num = 100 /> 适用类型:定义变量,支持计算和赋值 示例: 在页面中定义变量: <#assign num = 100 /> num获取:<font color="red"> ${num)} </font><br> 计算结果:<font color="red"> ${num * 10} </font><br> 展示结果: num获取:100 计算结果:1000 (7)对List集合进行取值 <#list list集合 as item> ${item} --取值 </#list> 示例: 在后台文件中定义变量 List<String> strList = new ArrayList<String>(); strList.add("第一个值"); strList.add("第二个值"); strList.add("第三个值"); 在页面中获取变量: <#list strList as item> ${item!}<br/> --取值 </#list> 展示结果: 第一个值 第二个值 第三个值 (8)对Map集合进行取值 <#list map?keys as key> ${key}:${map[key]} </#list> 示例: 在后台文件中定义变量 Map<String, Object> m = new HashMap<String, Object>(); m.put("name","姓名"); m.put("age",18); m.put("sex","男"); 在页面中获取变量: <#list m?keys as key> ${key}:${m[key]} </#list> 展示结果: name:姓名 age:18 sex:男 2. 条件判断指令: (1) if 格式:<#if 条件> 输出 </#if> 示例: 在页面中定义变量并判断条件: <#assign age = 18 /><br> <#if age == 18> <font color="red"> age = 18</font> </#if> 展示结果: age = 18 (2) if - else 格式:<#if 条件> 输出 <#else> 输出 </#if> 示例: 在页面中定义变量并判断条件: <#assign age = 20 /><br> <#if age == 18> <font color="red"> age = 18</font> <#else> <font color="red"> age != 18</font> </#if> 展示结果: age != 18 (3) if - elseif - else 格式:<#if 条件1> 输出 <#elseif 条件2> 输出 <#else> 输出 </#if> 示例: 在页面中定义变量并判断条件: <#assign age = 20 /><br> <#if age > 18> <font color="red">青年</font> <#elseif age == 18> <font color="red"> 成年</font> <#else> <font color="red"> 少年</font> </#if> 展示结果: 成年 (4) switch --常与case break default一起使用 参数可为字符串 格式:<#switch var> <#case 条件1> 输出 <#break> <#case 条件2> 输出 <#break> <#default> 输出 </#switch> 示例: 在页面中定义变量并判断: <#switch var="星期一"> <#case "星期一"> 油焖大虾 <#break> <#case "星期二"> 炸酱面 <#break> <#default> 肯德基 </#switch> 展示结果: 油焖大虾 3. 自定义函数、自定义指令: (1) 自定义函数 实现TemplateMthodModelEx (2) 自定义指令 实现TemplateDirectiveModel 示例: <@自定义指令名称 入参(key-value格式) ; 出参(list格式)> 运行条件 </@自定义指令名称> PS:不同的返回值用逗号( , )间隔开 4.常用内建函数、macro(宏指令)、function(函数指令): (1) 常用内建函数 处理字符串: substring 截取字符串,包头不包尾(下标) cap_first 第一个字母大写 end_with 以什么字母结尾 contains 是否包含目标字符串 date datetime time 转换成日期格式 starts_with 以什么字母开头 index_of 返回某个指定的字符串值在字符串中首次出现的位置(下标) last_index_of 获取指定字符出现的最后位置(下标) split 分隔 trim 去两端空格 处理数字: string x?string("0.##") 变成小数点后几位 round 四舍五入 floor 去掉小数点 ceiling 近1 变成整数 处理list: first: 取List值第一个值 last: 取List值最后一个值 seq_contains: 是否包含指定字符 seq_index_of: 指定字符所在位置 size: 集合大小 reverse: 集合倒序排列 sort: 对集合进行排序 sort_by: 根据某一个属性排序 chunk: 分块处理 其他: is_string: 是否为字符类型 is_number: 是否为整数类型 is_method: 是否为方法 (): 判断整个变量 has_content: 判断对象是否为空或不存在 eval: 求值 (2) macro(宏指令) 调用:<@macro_name param /> 语法:<#macro 变量名 参数> <#nested/> </#macro> (3) function(函数指令) 调用:${function_name(param)} 语法:<#function 变量名 参数> <#return> </#function>
相关推荐
当下载的excel格式内容比较复杂时,用程序生成excel文件就显得力不从心。这时采用excel模板化,更加便捷高效。本资源基于springboot+freemark模板做的示例。只需要了解下freemark基本语法即可。
1. **基本语法** Freemarker使用特定的语法来控制模板的生成。基本语法包括: - `<#...>` 用于包含Freemarker的所有指令和内容,外部内容将原样输出。 - `<@.../>` 用于调用函数。 - `var?member_function(...)`...
### FreeMarker 笔记、语法、讲解大全 #### 一、FreeMarker 概述与基本概念 FreeMarker 是一个用 Java 编写的模板引擎,它基于模板来生成文本输出。这些模板可以用来生成任何格式的文件,如 HTML 页面、XML 文档、...
第08讲_freemark基础语法详细讲_解及演示操作.mp4 第09讲_采用注解方式利用实体自动生成数据库表.mp4 第10讲_利用jpa进行数据库的增删改查操作.mp4 第11讲_jpa自定义查询批量删除及列表查询.mp4 第12讲_后台登录页面...
FreeMarker支持基本的数学运算,如加、减、乘、除和取余数: - `${a + b}`:加法。 - `${a - b}`:减法。 - `${a * b}`:乘法。 - `${a / b}`:除法(结果为浮点数)。 - `${a % b}`:取余数。 ### 6. 文本处理 ...
根据提供的文件信息,我们可以深入探讨FreeMarker的基础语法及其在模板引擎中的应用。FreeMarker是一种用于生成文本输出的模板引擎,广泛应用于Web开发中,能够帮助开发者动态生成HTML、XML等格式的内容。接下来,...
本指南旨在全面介绍Freemark的基本概念及其使用方法,帮助读者更好地理解和运用这一工具。 #### 二、核心概念 Freemark的核心概念主要包括三个:**序列(Sequence)**、**键值对集合(Hash)**以及**命名空间...
下面将详细介绍Freemarker的基本概念、核心语法以及在实际应用中的使用方法。 一、Freemarker基本概念 1. 模板:Freemarker的工作核心是模板,它是由静态文本和动态片段组成的HTML或者其他格式的文件。动态片段会由...
本教程适用于初学者,旨在快速引导你掌握Freemark的基本使用方法。我们将通过几个关键步骤来理解并实践如何在Java环境中配置和使用Freemark。 首先,你需要在项目中引入Freemark的库文件。在这个例子中,我们导入了...
在这个"test_Freemark freemark的基础入门小程序"中,我们将探讨Freemarker的基本概念、语法以及如何通过运行`Test.java`来生成`test_freemark.html`文件。 1. **Freemarker模板引擎基础**: Freemarker是基于模板...
Freemarker的核心是模板语言,其基本语法包括变量表达式`${...}`、三元操作符`<#if ...>`、条件语句、循环结构等。例如,`${name}`会输出变量`name`的值。 2. 数据模型: Freemarker模板需要一个数据模型,通常由...
在本教程中,我们将深入探讨如何在Java项目中使用Freemarker生成静态页面,以及其基本语法。 首先,了解Freemarker的基本概念是必要的。它是一个模板语言,允许开发者用简单的标记来控制输出内容。Freemarker与后端...
1. **Freemarker基础概念** - **模板语言**:Freemarker使用的是基于文本的模板语言,它不包含任何编程语法,而是通过简单的标记来控制数据的输出。 - **数据模型**:Freemarker与Java对象交互,通过数据模型将...
本学习资料旨在帮助初学者快速掌握FreeMarker的基本概念和用法,从零基础到深入理解。 一、FreeMarker简介 FreeMarker是一个开源的、基于模板的Java库,它允许开发者通过模板语言将静态模板与数据模型结合,生成所...
一、FreeMarker的基本概念 1. 模板:模板是FreeMarker的核心,它是HTML或者其他任何文本格式的文件,其中嵌入了FreeMarker指令和变量。这些指令和变量在运行时被替换为相应的值,生成最终的输出。 2. 数据模型:...
#### 二、Freemarker 基础语法 **1. 变量赋值** - **语法**: `<#assign name=value>` - `name`: 要定义的变量名。 - `value`: 赋给变量的值。 - **示例**: ```html 创为"> ``` **2. 字符串转换为 JSON** ...
Freemarker是一个强大的模板引擎,常用于Web应用中的视图层开发,特别是在Java环境中。...这个“Freemarker概述教程5分钟入门...通过这个“5分钟入门pdf”,读者可以迅速掌握其基本用法,为进一步深入学习和实践打下基础。
自定义标签在Freemarker中被称为`Custom Tags`,它们通过`<@...>`语法来调用。这些标签通常是由Java代码实现的,它们可以处理复杂的逻辑,如数据库查询、业务处理等,然后返回一个可渲染的字符串给Freemarker模板。...
它与Java Servlet容器紧密结合,允许...通过学习和理解其基本概念、语法以及使用方法,开发者能够高效地创建动态网页,实现与后端数据的有效交互。在Java开发中,掌握Freemarker能提升开发效率,使代码更易于维护。