Freemarker 提供了算术运算符, 逻辑运算符, 比较运算符, 空值处理运算符。

Freemarker 在进行运算时,你放入map 中的是什么类型, 就会解析成对应的类型。比如说:如果放入的是string 的 10 , 那么解析的时候 依然是string 类型的,而不是说是数值型。

【1. 算术运算符】
    1. 数字运算

        +:  a1+{a1} + {a2} = a1+a2−:{a1 + a2} -:    {a1} - a2={a2} = {a1 - a2}
        *:    a1∗{a1} * {a2} = a1∗a2/:{a1 * a2} /:    {a1} / a2={a2} = {a1 / a2}
        %:    a1{a1} % {a2} = ${a1 % a2}
        
    2. 字符串运算:

        +:  ${s1 + “,” +  s2 }
        
    3. 混合运算:
        ${s1 + “,” + s2 + “:” + a1 + ” + ” + a2 + ” = ” + (a1 + a2) }
        
    4. 字符串”10”的结果:${s3 + s3}

【2. 逻辑运算符】 只能用于布尔值,返回也是布尔值,不能直接输出,通常与if ,elseif 指令结合使用
    1. 逻辑与 &&:

${(bt && bf)?string}

 2. 逻辑或 ||:

${(bt || bf)?string}

3. 逻辑非 ! :
        ${(!bt)?string}
        
【3. 比较运算符】 只能比较数字和日期,不能比较字符串 ,返回为布尔类型不能直接输出
    1. 运算符类型:
        1. > (gt): 大于号,推荐使用gt
        2. < (lt): 小于号,推荐使用lt
        3. >= (gte): 大于等于, 推荐是用gte
        4. <= (lte): 小于等于,推荐使用lte
        5. == :  等于

6. != : 不等于

 2. 运算符示例: >
        1. 数值型: {a1}&gt;{a1}>{a2}?  (a1>a2)?string2.日期型:{(a1 > a2)?string} 2. 日期型: {today?date} &gt; tomorrow?date?{tomorrow?date}?  {(today?date > tomorrow?date)?string }
            {today?time} &gt;{today?time} > {tomorrow?time}?  (today?time>tomorrow?time)?string{(today?time > tomorrow?time)?string } {today?datetime} &gt; tomorrow?datetime?{tomorrow?datetime}?  {(today?datetime > tomorrow?datetime)?string }
    
【4. 空值运算符】 Freemarker 变量必须赋值,否则会跑出异常。 对此,Freemarker提供了两种方式处理
    1. ??: 判断是否为空,返回布尔类型,如果不为空返回true, 如果为空返回true,不能直接输出

zong == null? ${(zong??)?string}

 2. !: 设置默认值,如果为空,则设置默认值
        1. 设置默认为空字符串:
            zong = zong!2.设置指定默认值zong={zong!} 2. 设置指定默认值 zong = {zong!’hello’}

【输出结果】

[html] view plaincopyprint?
  1. Freemarker 在进行运算时,你放入map 中的是什么类型, 就会解析成对应的类型。
  2. 比如说:如果放入的是string 的 10 , 那么解析的时候 依然是string 类型的,而不是说是数值型
  3. 【1. 算术运算符】
  4. 1. 数字运算
  5. +:  10 + 3 = 13
  6. -:  10 - 3 = 7
  7. *:  10 * 3 = 30
  8. /:  10 / 3 = 3.333
  9. %:  10 % 3 = 1
  10. 2. 字符串运算:
  11. +:  hello,wold
  12. 3. 混合运算:
  13. hello,wold:10 + 3 = 13
  14. 4. 字符串”10”的结果:1010
  15. 【2. 逻辑运算符】 只能用于布尔值,返回也是布尔值,不能直接输出,通常与if ,elseif 指令结合使用
  16. 1. 逻辑与 &&:
  17. false
  18. 2. 逻辑或 ||:
  19. true
  20. 3. 逻辑非 ! :
  21. false
  22. 【3. 比较运算符】 只能比较数字和日期,不能比较字符串 ,返回为布尔类型不能直接输出
  23. 1. 运算符类型:
  24. 1. > (gt): 大于号,推荐使用gt
  25. 2. < (lt): 小于号,推荐使用lt
  26. 3. >= (gte): 大于等于, 推荐是用gte
  27. 4. <= (lte): 小于等于,推荐使用lte
  28. 5. == :  等于
  29. 6. != : 不等于
  30. 2. 运算符示例: >
  31. 1. 数值型: 10>3?  true
  32. 2. 日期型:
  33. 2016-4-4 > 2016-4-5?  false
  34. 17:00:23 > 17:00:23?  false
  35. 2016-4-4 17:00:23 > 2016-4-5 17:00:23?  false
  36. 【4. 空值运算符】
  37. 1. Freemarker 变量必须赋值,否则会跑出异常。 对此,Freemarker提供了两种方式处理
  38. 1. ??: 判断是否为空,返回布尔类型,如果不为空返回true, 如果为空返回true,不能直接输出
  39. zong == null? false
  40. 2. !: 设置默认值,如果为空,则设置默认值
  41. zong = hello
  42. zong = ab
Freemarker 在进行运算时,你放入map 中的是什么类型, 就会解析成对应的类型。
比如说:如果放入的是string 的 10 , 那么解析的时候 依然是string 类型的,而不是说是数值型
【1. 算术运算符】1. 数字运算+:  10 + 3 = 13-:  10 - 3 = 7*:  10 * 3 = 30/:  10 / 3 = 3.333%:  10 % 3 = 12. 字符串运算:+:  hello,wold3. 混合运算:hello,wold:10 + 3 = 134. 字符串"10"的结果:1010【2. 逻辑运算符】 只能用于布尔值,返回也是布尔值,不能直接输出,通常与if ,elseif 指令结合使用1. 逻辑与 &&:false2. 逻辑或 ||:true3. 逻辑非 ! :false【3. 比较运算符】 只能比较数字和日期,不能比较字符串 ,返回为布尔类型不能直接输出1. 运算符类型:1. > (gt): 大于号,推荐使用gt2. < (lt): 小于号,推荐使用lt3. >= (gte): 大于等于, 推荐是用gte4. <= (lte): 小于等于,推荐使用lte5. == :  等于6. != : 不等于2. 运算符示例: >1. 数值型: 10>3?  true2. 日期型:2016-4-4 > 2016-4-5?  false17:00:23 > 17:00:23?  false2016-4-4 17:00:23 > 2016-4-5 17:00:23?  false【4. 空值运算符】1. Freemarker 变量必须赋值,否则会跑出异常。 对此,Freemarker提供了两种方式处理1. ??: 判断是否为空,返回布尔类型,如果不为空返回true, 如果为空返回true,不能直接输出zong == null? false2. !: 设置默认值,如果为空,则设置默认值zong = hellozong = ab

转自:阅读原文

Freemarker 运算符相关推荐

  1. Freemarker模版详细介绍

    FreeMarker 1.主要内容 2. FreeMarker概述 2.1.FreeMarker概念 FreeMarker 是一款 模板引擎: 即一种基于模板和要改变的数据,并用来生成输出文本(HTM ...

  2. FreeMarker详细介绍

    FreeMarker 1. 主要内容 2.FreeMarker概述 2.1. FreeMarker概念 FreeMarker 是一款 模板引擎: 即一种基于模板和要改变的数据, 并用来生成输出文本(H ...

  3. FreeMarker知识点(初学用)

    目录 FreeMarker 1.主要内容 2.FreeMarker概述 2.1FreeMarker概念 2.2FreeMarker特性 2.3FreeMarker环境搭建 3.FreeMarker的数 ...

  4. freemaker_标签

    致谢!参考:https://elf8848.iteye.com/blog/1213430<!-- 专题1 !对输出的空值做处理,只输出无返回值 --> 输出name的值:${name!}. ...

  5. freemarker中运算符_如何在Web应用系统表示层开发中应用Velocity模板技术

    软件项目实训及课程设计指导--如何在Web应用系统表示层开发实现中应用Velocity模板技术 1.分离Web表示层的数据处理和展现逻辑的常见的应用技术 分离Web表示层的数据处理和展现逻辑是目前企业 ...

  6. freemarker中运算符_freemarker常见语法大全

    FreeMarker的插值有如下两种类型:1,通用插值${expr};2,数字格式化插值:#{expr}或#{expr;format} ${book.name?if_exists } //用于判断如果 ...

  7. 网页静态化技术Freemarker

    网页静态化技术Freemarker 一.Freemarker的基本介绍 1.1为什么要使用网页静态化技术 网页静态化解决方案在实际开发中运用比较多,例如新闻网站,门户网站中的新闻频道或者是文章类的频道 ...

  8. FreeMarker标签介绍

    FreeMarker标签使用  一.FreeMarker模板文件主要有4个部分组成   1.文本,直接输出的部分   2.注释,即<#--...-->格式不会输出   3.插值(Inter ...

  9. FreeMarker基本语法详解及模板文件的组成(二)

    海浪上次给大家分享了FreeMarker基本语法详解及模板文件的组成(一)海浪今天继续分享FreeMarker基本语法详解及模板文件的组成(二) 3.2 输出变量值<?xml:namespace ...

最新文章

  1. 消息队列怎么保证消息有没有重复消费(幂等性)?
  2. PLSQL Developer概念学习系列之如何正确登录连接上Oracle(图文详解)
  3. 7、Linux中文件类型、文件属性
  4. Redis的Set操作
  5. 文档丨暴力破解性能问题
  6. |Vijos|图论最短路|P1082 丛林冒险
  7. unity2d自动生成敌人_【A*Pathfinding】超级简单的Unity2D寻路
  8. VO与Map之间的相互转换
  9. LFY-SpringBoot2【SpringBoot2入门】
  10. TI高精度实验室-运算放大器-第十六节-全差分放大器
  11. Java Annotation 应用 -- 导出Excel表格
  12. DTI脑网络构建 详细介绍处理过程以及PANDA的使用
  13. 16. 二元随机变量,离散型随机变量分布律
  14. photoshop给照片去斑的一些办法
  15. hadoop清理回收站
  16. 【Java并发】Java并发编程-01
  17. C# 打印文档(word文档)
  18. 字符编码的常用种类介绍
  19. UI设计师该如何快速提升自己的设计水平
  20. MapReduce之输入输出类型

热门文章

  1. 生命科学领域下的“全球突破性十大技术”干货与分享
  2. HTML入门与HBuliderX下载安装及使用
  3. 【例4-6】香甜的黄油
  4. 对从事IT的一些想法和憧憬
  5. rdp协议服务器会反连客户端吗,反向RDP攻击:RDP客户端上的代码执行
  6. c语言均值滤波程序,均值滤波和均值滤波算法程序
  7. 配置Mingw64和MSYS2编译环境
  8. html中字体的单位,CSS中字体单位:px、em、rem和%
  9. python实验报告范文及模板_网络工程师-简历自我评价怎么写(范文)
  10. 2021年R1快开门式压力容器操作考试及R1快开门式压力容器操作免费试题