freemarker 教程
freemarker
前言
FreeMarker 是一款模板引擎:即一种基于模板、用来生成输出文本(任何来自于 HTML格式的文本用来自动生成源代码)的通用工具。
FreeMarker 实际上是被设计用来生成 HTML 页面,尤其是通过实现了基于 MVC(Model View Controller, 模型-视图-控制器)模式的 Java Servlet 应用程序。
freemarker的常用指令
模板+数据模型(java)=输出
插值
${variableName}
${obj.attr}逻辑运算符,逻辑运算符只能用于布尔值。
&&:逻辑与;||:逻辑或; !:逻辑非内建函数
FreeMarker提供了一些内建函数来转换输出,可以在任何变量后紧跟?,?后紧跟内建函数,就可以通过内建函数来转换输出变量。
字符串相关常用的内建函数
html:对字符串进行HTML编码;
cap_first:使字符串第一个字母大写;
lower_case:将字符串转成小写;
upper_case:将字符串转成大写;集合相关常用的内建函数
size:获得集合中元素的个数;
数字值相关常用的内建函数
int:取得数字的整数部分。
模板开发语句
if使用指令(常用必会)
<#if x == 1> x is 1 </#if> //else if ; else 用法<#assign age=23> <#if (age>60)>老年人 <#elseif (age>40)>中年人 <#elseif (age>20)>青年人 <#else> 少年人
</#if>
* switch使用指令(常用必会)
<#switch x>
<#case 1>
1
<#break>
<#case 2>
2
<#break>
<#default>
0
<#break>
</#switch>
* list循环格式(常用必会)
<#list students as s>
${s.no}
${s.name}
${s.sex}
</#list>
* assign指令使用示例,定义模板变量,可以使用模板变量(常用必会)
<#-- 直接定义 -->
<#assign x="Hello ${user}!">
<#-- 定义 -->
<#assign x>
<#list ["星期一", "星期二", "星期三", "星期四", "星期五"] as n>
${n}
</#list>
</#assign>
${x}
* 集合以及对象都可以做叠加(常用必会)
<#list ["星期一","星期二","星期三"] + ["星期四","星期五"] as x>
${x}
</#list>
<#assign scores = {"语文":86,"数学":78} + {"数学":87,"Java":93}>
* import指令 (常用必会)
该指令用于导入FreeMarker模板中的所有变量,并将该变量放置在指定的Map对象中,import指令的语法格式如下: `<#import "/lib/common.ftl" as com> `
上面的代码将导入`/lib/common.ftl`模板文件中的所有变量,交将这些变量放置在一个名为`com`的Map对象中. * include语法(常用必会)
可以包含页面:`<#include filename [options]> `,在上面的语法格式中,两个参数的解释如下:
1.filename:该参数指定被包含的模板文件 ;
2.options:该参数可以省略,指定包含时的选项,包含encoding和parse两个选项,其中encoding指定包含页面时所用的解码集,而parse指定被包含文件是否作为FTL文件来解析,如果省略了parse选项值,则该选项默认是true. * noparse指令
noparse指令指定FreeMarker不处理该指定里包含的内容,该指令的语法格式如下:
<#noparse>
<#list books as book>
${book.name}作者:${book.author}
</#list>
</#noparse>
输出如下:
<#list books as book>
${book.name}作者:${book.author}
</#list>
* escape , noescape指令
escape指令导致body区的插值都会被自动加上escape表达式,但不会影响字符串内的插值,只会影响到body内出现的插值,使用escape指令的语法格式如下:
<#escape identifier as expression>...
<#noescape>...</#noescape>
</#escape>
//看如下的代码:
<#escape x as x?html>
First name:${firstName}
Last name:${lastName}
Maiden name:${maidenName}
</#escape>
//上面的代码等同于:
First name:${firstName?html}
Last name:${lastName?html}
Maiden name:${maidenName?html}
* setting指令
该指令用于设置FreeMarker的运行环境,该指令的语法格式如下:`<#setting name=value>`,在这个格式中,name的取值范围包含如下几个:
locale:该选项指定该模板所用的国家/语言选项
number_format:指定格式化输出数字的格式
boolean_format:指定两个布尔值的语法格式,默认值是true,false
date_format,time_format,datetime_format:指定格式化输出日期的格式
time_zone:设置格式化输出日期时所使用的时区 * * 注释部分` <#-- 注释部分 -->`
from:https://www.kancloud.cn/eagles/codingrules/316622
freemarker 教程相关推荐
- Freemarker 教程(一)-模板开发手册
Hello,大家好,我是课代表.今天又是原创分享.欢迎关注我的公众号:Java课代表,更多干货等你来看. 本文是Freemarker系列的第一篇,面向模板开发人员,主要介绍 FreeMarker 所使 ...
- 一篇很全面的freemarker教程
copy自http://demojava.iteye.com/blog/800204 以下内容全部是网上收集: FreeMarker的模板文件并不比HTML页面复杂多少,FreeMarker模板文件主 ...
- FreeMarker教程
FreeMarker是一个模板引擎,一个基于模板生成文本输出的通用工具,使用纯Java编写 FreeMarker被设计用来生成HTML Web页面,特别是基于MVC模式的应用程序 虽然FreeMark ...
- 超全面的freemarker教程
转载:http://demojava.iteye.com/blog/800204 以下内容全部是网上收集: FreeMarker的模板文件并不比HTML页面复杂多少,FreeMarker模板文件主要由 ...
- java framemaker教程_《FreeMarker教程-笔录》
今天我们学习一下FreeMarker模板引擎.它是基于模板文件生成其他文本的通用工具.本章我们主要讲使用FreeMarker模板引擎生成 .html 文件和生成 .java 类文件. 简介 FreeM ...
- FreeMarker教程---Freemarker操作字符串
http://www.blogjava.net/freeman1984/archive/2010/11/04/337239.html http://www.blogjava.net/alinglau3 ...
- Freemarker新手教程详细
一.Freemarker的介绍 Freemarker 是一款模板引擎,是一种基于模版生成静态文件的通用 工具,它是为Java程序员提供的一个开发包,或者说是一个类库,它不是面向最终用户的,而是为程序员 ...
- Freemarker实例教程
一.Freemarker的介绍 Freemarker 是一款模板引擎,是一种基于模版生成静态文件的通用 工具,它是为java程序员提供的一个开发包,或者说是一个类库,它不是面向最终用户的,而是 ...
- Freemarker新手教程
版权声明:本文为博主落尘曦的原创文章.如转载请注明链接 [ 落尘曦的博客:http://blog.csdn.net/qq_23994787 ]感谢配合! https://blog.csdn.net/q ...
最新文章
- 腾讯全力支持鸿蒙,腾讯宣布大力发展车联网,或与华为鸿蒙强强联合!
- linux基础(day22)
- 搭建WordPress个人网站
- IDEA使用从Eclipse过来的快捷键
- GPS定位系统源码二次开发就选专为二次开发而生的GPSBD...
- 培训师 每小时多少钱_每个产品设计师需要了解的品牌知识
- Ajax 文件上传之PHP心得
- Mysql 集成随机唯一id mysql unique number generation
- Android https通信问题
- 特朗普前竞选经理犯罪证据曝光,竟是因不会 PDF 转换!
- c#数据库事务锁类型
- Linux命令行解析参数之getopt_long
- vue获取路径参数和请求参数
- 广州仙村中学2021高考成绩查询,仙村中学(增城区)
- python opencv中文文档_OpenCV中文官方文档
- android studio gradle下载失败处理
- android实现vr 功能,VR模式成亮点:属于Android N的10大新功能
- 苹果cmsv10仿电影淘淘PC+WAP爱看的高端免费模板
- Android DoraemonKit 教程和简介
- web开发入门,css背景图片自适应屏幕宽度
热门文章
- Jodd-vtor验证框架
- jenkis编译报错:需要class,interface或enum
- nginx 学习笔记(2) nginx新手入门
- 【风险管理】风控决策系统
- 支付产品必懂的会计基础及如何应用
- 一文读懂大数据平台——写给大数据开发初学者的话!
- Java Review - 使用Event Bus实现目录变化的监控
- Spring Cache抽象-使用Java类注解的方式整合EhCache
- An error has occurred while drawing:java.lang.IllegalStateException: The display list is not valid.
- java excel api xlsx_Java 解析Excel(xls、xlsx两种格式)