Freemarker常用语法简例(二)

2023-10-26

为使用Freemarker模板时的关键性语法编写代码示例或说明,主要用于回忆性检索或速查,阅读需要一定代码基础或对Freemarker有了解。
常用Freemarker语法简例
常用Freemarker语法简例(二)

bool值

<#-- 输出 true: -->
${foo?c}

<#assign foo = true>
<#-- 输出 Y: -->
${foo?then('Y', 'N')}

<#assign foo = false>
<#-- 输出 N: -->
${foo?then('Y', 'N')}

<#assign x = 10>
<#assign y = 20>
<#-- 输出x、y中较大的: -->
${(x > y)?then(x, y)}

数字类型

<#assign a = 2378492>
${a} -- 2,378,492
${a?c} -- 2378492

<#assign a =2.79>
?floor=${a?floor}  -- 2
?ceiling=${a?ceiling}  -- 3
?round=${a?round} -- 3

?round=${a?is_nan} -- false
?round=${a?is_infinite} -- false

字符串处理

${string?html} html encode处理
${string?length} 字符串长度
${string?replace(a,b)} 替换a为b
${string?js_string} 转义' " 
${string?url} 进行url转义处理
${string?url_path} 进行url转义处理,但是不转义 /
...

列表处理

<#assign colors = ["red", "green", "blue"]>
${colors?size} 元素数量
${colors?first} 获取第一个元素
${colors?last} 获取最后一个元素
${colors?join(", ")} 使用,连接数组元素
${colors?sort} 以升序排列,支持简单数据类型,不支持对象

对象类型,需使用特定属性排序
${objects?sort_by("weight")} 可按照特定属性排序
${objects?sort_by(['name', 'last'])} 可处理数据结构层级比较深的情况 如 object.name object.item.user.last 等

哈希表处理

<#assign h = {"name":"mouse", "price":50}>
<#assign keys = h?keys>
<#list keys as key>${key} = ${h[key]}; </#list>

时间格式化

对于时间格式的变量,必须进行格式转化

  • ?time 仅显示时间部分
  • ?date 仅显示日期部分
  • ?datetime 包括日期和时间
  • ?string[“yyyy-MM-dd HH:mm”]
<#assign openingTime = .now>
${openingTime?time}  <#-- ?time等参数为必须的参数,否则将失败 0-->
或:
<#assign openingTime = openingTime?time>
${openingTime} 

其他 string 的时间处理函数

${openingTime ?string.short}
${openingTime ?string.medium}
${openingTime ?string.long}
${openingTime ?string.full}
${openingTime ?string.medium_short} <#-- medium date, short time -->
${openingTime ?string.xs}
${openingTime ?string.iso}
---
输出:
string.short:2/20/07 01:45 PM
string.medium: Feb 20, 2007 01:45:09 PM
string.long:February 20, 2007 01:45:09 PM PST
string.full:Friday, February 20, 2007 01:45:09 PM PST
string.medium_short: Feb 8, 2003 9:24 PM
string.xs: 2007-02-20T13:45:09-08:00
string.iso: 2007-02-20T13:45:09-08:00
时间格式化:
${lastUpdated?string["EEEE, MMMM dd, yyyy, hh:mm a '('zzz')' "]}
${lastUpdated?string["EEE, MMM d, ''yy"]}
${lastUpdated?string.yyyy}  <#-- 与 ${lastUpdated?string["yyyy"]} 相同 -->
---
输出:
Tuesday, April 08, 2003, 09:24 PM (PDT)
Tue, Apr 8, '03
2003
${lastUpdated?string.iso_m_u}
${lastUpdated?string.xs_ms_nz}
---
输出:
2007-02-20T21:45Z
2007-02-20T13:45:09.000
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Freemarker常用语法简例(二) 的相关文章

  • c++中c_str()的用法详解

    转载地址 http blog csdn net u013682388 article details 39547773 cpp view plain copy 标准库的string类提供了三个成员函数来从一个string得到c类型的字符数组
  • 发展,管理,前辈,名人等有用的文章链接

    专访李智勇 一个老程序员的哲学思考与勇猛精进的人生 http www csdn net article 2014 09 24 2821834 程序员生存定律 目录 http blog csdn net leezy 2000 article
  • 3D 重构的一些应用场景

    3D 重构是利用2D 照片合成3D 图像 3D重构也是人工智能领域的一个分支 因为业界有很多应用 所以记下来 供大家参考 第一次遇到3D重构的课题是老东家在物流领域的业务场景 后来发现 3D重构的应用场景还真不少 3D重构一个重要指标是精准
  • Java教程:Javadoc(文档注释)详解

    本篇文章由 泉州SEO www 234yp com 整理发布 Java教程 www 234yp com Article 198092 html 谢谢合作 Java教程Java 支持 3 种注释 分别是单行注释 多行注释和文档注释 文档注释以
  • 使用Freemarker 实现JSP页面的静态化

    使用Freemarker 静态化网页 一 原理 Freemarker 生成静态页面 首先需要使用自己定义的模板页面 这个模板页面可以是最最普通的html 也可以是嵌套freemarker中的 取值表达式 标签或者自定义标签等等 然后后台读取
  • 如何将照片中的文字转变成可编辑的文章(如何将书上的文字转变为可编辑的文字)

    在工作中 我常常在想 要是能把纸上有用的文字快速输入到电脑中 不用打字录入便可以大大提高工作效率该有多好呀 随着科技的发展 这个问题在不断的解决 例如 现在市场上的扫描仪就带有OCR软件 可以把扫描的文字转换到电脑中进行编辑 但是 对于我们
  • 一个java程序员4年4个工作的经历

    今天看到一个帖子说程序员怎么提升自己的技能 里面说了十多项 对自己感觉能有用的有以下几点 读书 读代码 读博客 写博客 回答别人的问题 参加一个开源项目 参加培训 研讨会 回答问题当中给自己的思考 一个毕业生 做java转正了4k 一个室友
  • 在java中加载freemarker模板时出现FileNotFoundException

    加载 freemarker 模板时出现文件未找到异常 即使该模板实际上存在于路径中 更新 这是作为网络服务运行的 它将根据搜索查询向客户端返回 xml 当我从另一个 java 程序 从静态主程序 调用模板时 模板加载成功 但是当客户端请求x
  • 以表单形式使用时,accept-charset="UTF-8" 参数不会执行任何操作

    我在表单中使用accept charset utf 8 属性 发现当使用非ascii进行表单发布时 标头在请求标头中具有不同的接受字符集选项 我有什么遗漏的吗 我的表格看起来像这样
  • 获取存储在变量中的字符串的值,该变量的名称作为字符串存储在另一个变量中

    lt assign blah foo gt lt assign foo awesome gt 我们可以在不引用 foo 的情况下渲染 awesome 吗 我尝试过类似的东西 blah 但它不起作用 有什么想法吗 有一个eval内置函数 它将
  • 使用 Freemarker 解析 Spring MVC 中的视图 - 包括 jsp 页面

    使用 FreemarkerServlet 时 可以将 JSP 页面与 Freemarker 内容一起包含在内 但是 我在 Spring MVC 应用程序中使用 Freemarker 作为视图解析器 因此不使用 FreemarkerServl
  • Netsuite Advanced PDF/HTML 代码 ifelse 语句

    我需要一些帮助 以正确的方式格式化此代码 以便在 Netsuite 中实现项目 td lt if item units null gt Units lt else gt tranline units td 我希望 PDF 表单显示测量单位
  • Freemarker 内置换行功能

    在我的代码中 我使用 n 作为换行符 有人建议我需要避免 n 因为这对于不同的操作系统 UNIX Windows 和 MAC 来说是不同的 并且每个操作系统都会以不同的方式解释这个字符 虽然我看到了预期的行为 但任何人都可以建议 我们是否有
  • 从 Struts2 应用程序中的 FreeMarker 获取模板文本

    我想使用 Freemarker 在 Struts2 应用程序中生成电子邮件 由于我也在使用 Freemarker 来实现我的观点 因此我想 重用 相同的配置 使用 Spring 做同样的事情已经有一个类似的问题 在 Spring 应用程序中
  • FreeMarker 模板错误!在struts2中

    我在类中使用基于 Sturts 2 注释的验证 同时显示操作错误 我收到了这个奇怪的 FreeMarker 模板错误 这是我的实体类 Entity public class User implements Serializable priv
  • Keycloak主题变量

    在 Keycloak 的基本模板中 有多个变量示例 可在 Freemarker 模板中访问 例如 在文件中 https github com keycloak keycloak blob master themes src main res
  • 使用 Freemarker 中的参数调用 Java 方法

    以下 FTL 标记对我来说效果很好 并在我的服务器端 JiveActionSupport 对象中调用 getWidgets lt list widgets as widget gt do something with widget sku
  • 有没有办法做 gsp 部分而不是标签库?

    我喜欢 freemarker 的一件事是 你可以快速创建封装复杂 html 的新宏 使页面更小 更简洁 我是否必须创建标签库才能在 grails 中执行相同的操作 或者是否有一个真正的轻量级语法来实现相同的操作 有一个
  • FreeMarker 模板错误:以下内容已计算为 null 或缺失 |但事实并非如此

    我面临的错误是如此奇怪 一切看起来都很好 但是当浏览器向服务器发送 GET 请求时 我收到此错误 我想做的实际上是捕获 HTTP 参数 将它们保存在发送到 Freemarker 模板的 ArrayList 中保存的对象中 请你帮助我好吗 多
  • 访问 <#list> 中对象的属性

    Solution 我之前曾尝试向 LineItem 类添加访问器 例如 public String getItemNo return itemNo 并将 FTL 从 lineItem itemNo to lineItem getItemNo

随机推荐

  • ARM开发板挂接NFS网络文件系统

    1 交叉线连开发板和PC 2 LINUX IP PC IP和开发板IP属同一网段 LINUX IP 192 168 1 20 PC IP 192 168 1 30 做中转作用 开发板IP 192 168 1 10 3 ubuntu默认是没有
  • mysql 建表语句 stored as_Druid 解析Hive建表语句解析报错

    Druid 版本 com alibaba druid spring boot starter 1 2 3 Hive 建表SQL create table ads data sale detail one23 like ads data sa
  • HashMap的底层实现原理

    HashMap的底层实现原理 一 HashMap的底层实现原理 HashMap 在 JDK1 8 之前的实现方式 数组 链表 JDK1 8之后的实现方式 数组 链表 红黑树 原理 当你 new 一个 HashMap 的时候 它底层并没有创建
  • 有哪些副业适合教师?有哪些是教师禁止的副业?

    有哪些副业适合教师 有哪些是教师禁止的副业 老师做副业选择挺多的 但是很多人一上来就说什么辅导班 做点小生意之类的 大家怕是还不知道对于在编教师有些兼职副业是做不了的 有些事没有禁止可以做的 还有一些是鼓励做的 那些副业是老师坚决不能碰的
  • Java初学之标识符

    目录 一 什么是标识符 二 标识符的命名规则 三 标识符的命名规范 一 什么是标识符 标识符 identifier 是指用来标识某个实体的一个符号 在不同的应用环境下有不同的含义 在java源程序中 凡是程序员有权利自己命名的单词都是标识符
  • 关于数据导入,教你几招

    前言 我们知道 数据库是存放数据的仓库 日常我们使用数据库也是为了存储数据 和数据库打交道总免不了要进行数据导入工作 工作中也可能遇到各种不同的数据导入需求 本篇文章主要分享下数据导入相关的小技巧 希望你能学到几招 1 弄清需求是关键 在进
  • AIX 常用命令

    查看所有vg对应的lv lsvg o lsvg i l 查看一个lv的详细细心 lv对应的日志文件 getlvcb AT fslv01 VGDA与ODM的同步 synclvodm v vght vg 名字 umount被占用删除 fuser
  • TortoiseGit 入门指南05:推送和拉取

    本节所讲内容均涉及到 远端版本库 版本库 的概念在 TortoiseGit 入门指南02 创建和克隆仓库 中提到过 它是工作目录下面的一个名为 git 的隐藏目录 我们每一次提交 每一个分支都会保存在版本库中 这个版本库就在我们电脑上的某个
  • C算法:冒泡排序算法(超级详细)!!!

    冒泡排序算法 冒泡排序是一种简单的排序算法 它也是一种稳定排序算法 其实现原理是重复扫描待排序序列 并比较每一对相邻的元素 当该对元素顺序不正确时进行交换 一直重复这个过程 直到没有任何两个相邻元素可以交换 就表明完成了排序 一般情况下 称
  • 常用的三种代码宏定义

    常用的三种代码宏定义 方式一 if endif 方式二 ifdef endif 方式一 if和方式二 ifdef别混搅 方式三 ifndef define else endif 方式一 if endif define LEDTEST 1 1
  • 文件解压缩操作

    文件解压缩操作 package com general system import java io File import java io FileOutputStream import java io IOException import
  • 无监督学习(含自编码器在MNIST上的图片重建实战)

    目录 1 无监督特征学习 1 1 PCA 主成分分析 1 2 稀疏编码 1 3 自编码器 2 自编码器在MNIST上的图片重建实战 3 自编码器变种 3 1 稀疏自编码器 3 2 堆叠自编码器 3 3 降噪自编码器 3 4 对抗自编码器 3
  • 【Qt5】频繁调用update()若干时间后无法自动重绘界面的问题

    最近在项目中遇到了这样的问题 程序的结构 主线程用于界面控制 线程1用于生成显示内容 线程2用于精确控制在正确的时刻控制界面显示生成的内容 实现方式 在线程2中直接调用显示控件的update 方法 让主线程重绘 运行效果 运行开始后的一段时
  • git创建本地仓库的三种方法

    首先新建文件夹E git repository repo1 然后打开该目录 接下来 有三种方式创建本地仓库 第一种方法 右键 单击git GUI here 点击创建仓库 然后关闭即可 此时可以看到新生成的文件夹 git 注意 git是隐藏文
  • Hive 分组取Top N

    成绩表S 字段sid cid score 求每门课程的前2名与后2名sid with a as select sid rank over distribute by cid sort by score rn rank over distri
  • 入门电机系列之3舵机

    入门电机系列 基于STM32硬件 本文章学习借鉴于野火团队资料 以表感谢 官网http products embedfire com 舵机的原理与应用 文章目录 入门电机系列 基于STM32硬件 前言 一 舵机的分类 舵机结构 舵机工作原理
  • 安装Java后端钉钉新的jar包指令

    install install file Dfile lib dingtalk sdk java taobao sdk java auto 1479188381469 20200403 jar DgroupId com taobao Dar
  • linux命令高亮显示,linux命令行高亮显示

    Loading gt 我们常用命令的朋友知道 纯黑白的看命令 时间长了很是不舒服 那么接下来就进行下命令行高亮的个性化的配置吧 想永久性的设置命令行高亮的效果 就需要修改 bashrc配置文件 一 进入 bashrc文件目录 bashrc这
  • 了解基础的docker容器化

    一 什么是docker容器 docker容器简单说来就是码头工具 docker是一个开源的的应用容器引擎 docker的图标是一个鲸鱼上有很多集装箱 docker就是鲸鱼 他上面的集装箱就代表各个容器 docker容器在目前的环境中大部分公
  • Freemarker常用语法简例(二)

    为使用Freemarker模板时的关键性语法编写代码示例或说明 主要用于回忆性检索或速查 阅读需要一定代码基础或对Freemarker有了解 常用Freemarker语法简例 常用Freemarker语法简例 二 bool值 lt 输出 t