1、取值(插值)指令

常用${var} 语法进行取值;
对null、不存在对象取值${var!}
取包装对象的值,通过“点”语法:${User.name} 取值的时候可以进行计算、赋值
Date类型格式${date?String('yyyy-MM-dd')}
如何转义HTML内容:${var?html} 不能转义Java.Util的Date;可以转义Java.sql的Date;
日期:${dateVar?string('yyyy-MM-dd')} 如果对象为null;
${var!} 、 ${var!'我是默认值'}
不存在的变量:
missing:${sssVar!'我是默认值'}

变量的定义、赋值、运算:

//赋值&运算
<#assign a=100/>
a = <font color="red">${a}</font>
a+100=<font color = "red">${a+100}</font>

自定义对象User变量的取值:

${(userObj.name)!}:对整体加一个()括号,则先判断前面的userObj是否存在,然后判断后面的.name是否存在;

${(userObj.name)!‘我是默认值’}:Freemarker对单引号和双引号没有区别。

输出富文本:

	user.setBrief("<font color='red'>此处编辑富文本!</font>");
${(userObj.brief)}
若想将其中的html语句也输出,则:
${(userObj.brief)!?html}

集合List的遍历:

	ModelAndView mv = new ModelAndView("index");

	List<String> list = new ArrayList<String>();
list.add("a");
list.add("a");
mv.addObject("myList",list);
前台取值:
<#list myList as item>
<font color="red">${item!}</font>
</#list>

集合Map的遍历:

	ModelAndView mv = new ModelAndView("index");

	Map<String,String> map = new HashMap<String,String>();
map.put("a",1);
map.put("b",2);
mv.addObject("map",map);
前台取值:
<#list map?keys as key>
<font color="red">${key}:${map[key]}</font>
</#list>

2、逻辑指令:if、switch

	//定义一个变量
<#assign var=99/>
//if表达式
<#if var ==99>
<font color="red">var = 99 </font>
</#if> <#if var ==99>
<font color="red">var = 99 </font>
<#else>
<font color="red">var != 99</font>
</#if> //如果大于99
<#if var $gt;99>
<font color="red">var 大于 99 </font>
<#elseif var==99>
<font color="red">var = 99</font>
<#else>
<font color="red">var 小于 99</font>
</#if>
	//加两个??,判断变量是否存在,如果存在,执行里面的语句,否则不执行。
//??也等价于<#if mylist?exists>,
<#if myList??>
<#list myList as item>
${item}
</#list>
</#if>

if多条件判断:||、&&、!

	<#assign var = 'python'>

	<#if var =="python" || var =='java'>
<font color="red">python or java</font>
</#if> //?length判断字符串长度
<#if var = 'python' && var?length==6>
<font color="red">python 长度为6</font>
</#if>

Switch语法:包含switch,case,break,default;

	<#assign = var = 10 />
<#switch var>
<#case 10>
10<br/>
<#break>
<#case 100>
100<br/>
<#break>
<#default>
other
</#switch>

3、字符串、集合操作

	//定义两个变量a,b
<#assign a ='hello'/>
<#assign b ='world'/>
//连接
${a+b}
//截取
${(a+b)?substring(5,8)}
//长度
${(a+b)?length}
//大写
${(a+b)?upper_case}
//小写
${(a+b)?lower_case}
//index_of
${(a+b)?index_of('w')}
//last_index_of:单词最后一次出现的地方
${(a+b)?last_index_of('0')}
//replace
${(a+b)?replace('o','xx')}

4、自定义函数

自定义函数(整数排序 sort_int)

	<#assign myList=[2,3,1,4,6,9,7] />
//未排序
<#list myList as item>
${item},
</#list>
//排序
<#list sort_int(myList) as item>
${item},
</#list>
//sort_int从哪里来呢?
//controller;
ModelAndView mv = new ModelAndView("index");
mv.addObject("sort_int",new SortMethod());
return mv;

5、list排序内建函数、常用指令

	<#assign myList=[2,3,1,4,6,9,7] />
//排序
<#list myList?sort as item>
${item_index}:${item}
</#list> //倒叙
<#list myList?sort?reverse as item>
//长度
${myList?size}
//下表
${myList[3]}

6、自定义指令

内置指令用#;

自定义指令用@;

7、freemarker常用内建函数

7.1 处理字符串内建函数

substring、cap_first(首字母变大写的函数)、ends_with(以…结尾)、contains(字符串是否包含目标字符串);

date、datetime、time。如何把字符串转为这三个格式的类型。

starts_with(字符串以…开始)、index_of(字符串所在的位置)、last_index_of(字符串最后所在的位置)、spilt(分割,返回的是数组)、trim(把空和空格去掉)。

7.2 处理数字的内建函数

string、x?string(“0.##”);小数点后几位

round(四舍五入)、floor(把小数点后去掉)、ceiling;

7.3 处理list的内建函数

first(第一个值)、last(最后一个值)、seq_contains(序列是否包含)、seq_index_of(序列位置);

size、reverse、sort、sort_by(如果List是个对象,则可跟进某个属性进行排序)

chunk(将List分块处理)

7.4 其他内建函数

is函数:is_string、is_number、is_method;判断变量类型;

()、has_content函数。

eval求值。





8、macro、function指令

8.1 宏macro、nested、return指令





8.2 函数function、return指令

Java模板引擎Freemarker的更多相关文章

  1. Java模板引擎 FreeMarker

    @(编程) [TOC] 1. 简介 FreeMarker是一个模板引擎,一个基于模板生成文本输出的通用工具,使用纯Java编写.它是为Java程序员提供的一个开发包.它不是面向最终用户的,而是为程序员 ...

  2. Java模板引擎FreeMarker介绍和使用

    http://blog.csdn.net/shimiso/article/details/8778793

  3. Java模板引擎之Freemarker

    Freemarker定义: 一款模板引擎 Freemarker是一个web图层组件不是web框架,解析服务端数据到页面 小例子: <#list 集合 as item> list标签对集合进 ...

  4. Spring Boot (三)模板引擎FreeMarker集成

    一.FreeMaker介绍 FreeMarker是一款免费的Java模板引擎,是一种基于模板和数据生成文本(HMLT.电子邮件.配置文件.源代码等)的工具,它不是面向最终用户的,而是一款程序员使用的组 ...

  5. Beetl学习总结(1)——新一代java模板引擎典范 Beetl入门

    1. 什么是Beetl Beetl目前版本是2.7.0,相对于其他java模板引擎,具有功能齐全,语法直观,性能超高,以及编写的模板容易维护等特点.使得开发和维护模板有很好的体验.是新一代的模板引擎. ...

  6. 实现一个代码自动生成(一):模板引擎Freemarker

    目录 前言 模板引擎FreeMarker 前言 在现在的开发当中,代码生成已经是必不可少的一个功能,每个公司都会有自己的一套定制的项目骨架,而实现代码自动生成,模板引擎是必不可少的,所以在这篇博客中, ...

  7. SpringBoot系列:Spring Boot使用模板引擎FreeMarker

    一.Java模板引擎 模板引擎(这里特指用于Web开发的模板引擎)是为了使用户界面与业务数据(内容)分离而产生的,它可以生成特定格式的文档,用于网站的模板引擎就会生成一个标准的HTML文档. 在jav ...

  8. jetbrick,新一代 Java 模板引擎,具有高性能和高扩展性

    新一代 Java 模板引擎,具有高性能和高扩展性. <!-- Jetbrick Template Engineer --> <dependency> <groupId&g ...

  9. Java 模板引擎 jetbrick-template

    jetbrick-template 是一个新一代 Java 模板引擎,具有高性能和高扩展性. 适合于动态 HTML 页面输出或者代码生成,可替代 JSP 页面或者 Velocity 等模板. 指令和 ...

随机推荐

  1. HystrixRequestContext实现Request级别的上下文

    一.简介 在微服务架构中,我们会有这样的需求,A服务调用B服务,B服务调用C服务,ABC服务都需要用到当前用户上下文信息(userId.orgId等),那么如何实现呢? 方案一: 拦截器加上Threa ...

  2. select机制

    select机制 函数作用: 在一段时间指定的时间内,监听用户感兴趣的文件描述符上可读.可写和异常事件. 函数原型: #include <sys/time.h> #include < ...

  3. linux根文件系统 /etc/resolv.conf 文件详解

    Linux根文件系统/etc/resolv.conf文件,它是DNS客户机配置文件,用于设置DNS服务器的IP地址及DNS域名,还包含了主机的域名搜索顺序.该文件是由域名解析器(resolver,以恶 ...

  4. YGGL.sql

    (将表复制粘贴至记事本,再用source命令导入到数据库中) CREATE TABLE `departments` ( `部门编号` char(3) NOT NULL COMMENT '部门编号', ...

  5. centos 8.x系统配置chrony时间同步服务

    redhat/centos 7.x默认使用的时间同步服务为ntp服务,但是从redhat/centos 8开始在官方的仓库中移除了ntp软件,换成默认的chrony进行时间同步的服务,虽然也可以通过添 ...

  6. Spring Boot GraphQL 实战 03_分页、全局异常处理和异步加载

    hello,大家好,我是小黑,又和大家见面啦~ 今天我们来继续学习 Spring Boot GraphQL 实战,我们使用的框架是 https://github.com/graphql-java-ki ...

  7. 【剑指 Offer】10-II.青蛙跳台阶问题

    题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶.求该青蛙跳上一个 n 级的台阶总共有多少种跳法. 答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008, ...

  8. 容器编排系统K8s之APIService资源

    前文我们聊到了k8s上crd资源的使用和相关说明,回顾请参考:https://www.cnblogs.com/qiuhom-1874/p/14267400.html:今天我们来了解下k8s的第二种扩展 ...

  9. servlet+jsp完成简单登录

    将用户在注册界面中的数据填充到数据库相对应的表格中.当用户再次登录时,从数据库中拿到相应的数据查询并与页面的数据做对比,判断是否登陆成功. 需要在HTML文件中将form表单上的action属性值设置 ...

  10. Docker学习笔记之创建Ubuntu基础镜像

    在创建基础镜像之前需要安装Bootstrap工具debootstrap,所以执行命令: sudo apt install debootstrap 软件安装完成后就可以使用debootstrap工具下载 ...