FTL常用标签及语法

freemarker导出Word,文本,可循环表格,合并单元格,可循环图片,目录更新(二) 上篇文章大概说了前期的ftl配置,这次说一下表格部分的操作。大概会有: 表格的数据循环 单元格的合并。 先来说一下普通的表格,效果图如下: 这是一个通过一个预先设计好的模板,通过后台返回的数据来生成的表格。这个很简单,不涉及到合并的操作,字体单元格大小预先在模板设置好就可以。 模板如下: 这个需要注意的是,只有${courseType}这一行是需要循环的,其余的位置不需要循环,所以在制作模板... 阅读详情

判断对象是否存在,若成立说明存在 <#if blockObjList ??></#if>

       <#if blockObjList ??>  <#else>  </#if>

判断知否和某一个值相等(先判断是否存在,在判断相等,如果该指定的参数不存在还比较相等的话就回出错) <#if componentId ?? &&  componentId==1></#if> 

list循环(循环遍历list并给遍历的对象取别名attribute以方便后面对象调用),if_exists在调用一个变量需要先判断是否为空不然为空时会出错,_index为取出行号索引从0开始,?size可以判断list大小  <#list lockObj.components              as  attribute>  ${attribute.contenturl?if_exists} ${attribute_index}  </#list>    {lockObj.components ?size}

ftl.map  
    <#list Map?keys as s>  
        ${Map[s]}  
    </#list>

变量与指定值相加减,需要先判断该变量是否为数字类型,?number 然后转换为数字类型再做相减运算(变量number与指定的2相减) ${blockWidth?number-2}

日期转换

        时间格式化的方法代码
        最好加上 判断下c时候存在  
       <#if c??>  
             ${c.addtime?string("yyyy-MM-dd HH:mm:ss")  
       </#if> 

判断长度并截取代码
      <#if c.titleH1??>  
          <#if c.titleH1?length lt 33>  
              ${c.titleH1} 

Ftl变量转换代码
      ?number转为数字  
      ?c转为字符串  
      ?string转为字符串  
      ?currency(货币)  
     ?percent(百分比)  
      trim 删除字符串首尾空格 ${“  String ”?trim} 结果为String  
      split使用指定的分隔符将一个字符串拆分为一组字符串  
     <#list “This|is|split”?split(“|”) as s>  
        ${s}   
     </#list>  

 

${“strabg”?replace(“ab”,”in”)} 结果为string  
${“string”?contains(“ing”)?string} 结果为true  
注意:布尔值必须转换为字符串才能输出  
${“string”?index_of(“in”) 结果为3 
${“string”?index_of(“ab”) 结果为-1 
length返回字符串的长度 ${“string”?length}结果为6 
lower_case将字符串转为小写  
${“STRING”?lower_case}à结果为string  
upper_case将字符串转为大写  
${“string”?upper_case}à结果为STRING  
ends_with 判断某个字符串是否由某个子串结尾,返回布尔值。  
${“string”?ends_with(“ing”)?string} 返回结果为true  
注意:布尔值必须转换为字符串才能输出  
html 用于将字符串中的<、>、&和“替换为对应得&lt;&gt;&quot:&amp  
index_of(substring,start)在字符串中查找某个子串,返回找到子串的第一个字符的索引,如果没有找到子串,则返回-1。  
Start参数用于指定从字符串的那个索引处开始搜索,start为数字值。  
如果start大于字符串长度,则start取值等于字符串长度,如果start小于0, 则start取值为  
${‘str’?substring(0)}à结果为str  
${‘str’?substring(0,1)}à结果为s  

2.cap_first 将字符串中的第一个单词的首字母变为大写。  
${‘str’?cap_first}à结果为Str  

3.uncap_first将字符串中的第一个单词的首字母变为小写。  
${‘Str’?cap_first}à结果为str  

4.capitalize将字符串中的所有单词的首字母变为大写  
${‘str’? capitalize}à结果为STR  
date,time,datetime将字符串转换为日期  
例如:  
<#assign date1=”2009-10-12”?date(“yyyy-MM-dd”)>  
<#assign date2=”9:28:20”?time(“HH:mm:ss”)>  
<#assign date3=” 2009-10-12 9:28:20”?time(“HH:mm:ss”)>  
${date1}à结果为2009-10-12 
${date2}à结果为9:28:20 
${date3}à结果为2009-10-12 9:28:20 

?number转为数字
?c转为字符串
?string转为字符串
?currency(货币)
?percent(百分比)
trim 删除字符串首尾空格 ${“  String ”?trim} 结果为String
split使用指定的分隔符将一个字符串拆分为一组字符串
<#list “This|is|split”?split(“|”) as s>
${s}
</#list>
${“strabg”?replace(“ab”,”in”)} 结果为string
${“string”?contains(“ing”)?string} 结果为true
注意:布尔值必须转换为字符串才能输出
${“string”?index_of(“in”) 结果为3
${“string”?index_of(“ab”) 结果为-1
length返回字符串的长度 ${“string”?length}结果为6
lower_case将字符串转为小写
${“STRING”?lower_case}à结果为string
upper_case将字符串转为大写
${“string”?upper_case}à结果为STRING
ends_with 判断某个字符串是否由某个子串结尾,返回布尔值。
${“string”?ends_with(“ing”)?string} 返回结果为true
注意:布尔值必须转换为字符串才能输出
html 用于将字符串中的<、>、&和“替换为对应得&lt;&gt;&quot:&amp
index_of(substring,start)在字符串中查找某个子串,返回找到子串的第一个字符的索引,如果没有找到子串,则返回-1。
Start参数用于指定从字符串的那个索引处开始搜索,start为数字值。
如果start大于字符串长度,则start取值等于字符串长度,如果start小于0, 则start取值为
${‘str’?substring(0)}à结果为str
${‘str’?substring(0,1)}à结果为s

2.cap_first 将字符串中的第一个单词的首字母变为大写。
${‘str’?cap_first}à结果为Str

3.uncap_first将字符串中的第一个单词的首字母变为小写。
${‘Str’?cap_first}à结果为str

4.capitalize将字符串中的所有单词的首字母变为大写
${‘str’? capitalize}à结果为STR

date,time,datetime将字符串转换为日期
例如:
<#assign date1=”2009-10-12”?date(“yyyy-MM-dd”)>
<#assign date2=”9:28:20”?time(“HH:mm:ss”)>
<#assign date3=” 2009-10-12 9:28:20”?time(“HH:mm:ss”)>
${date1}à结果为2009-10-12
${date2}à结果为9:28:20
${date3}à结果为2009-10-12 9:28:20

宏定义hash内置函数代码
Hash的内置函数  
1.hash?keys 返回hash里的所有key,返回结果为sequence  

2.hash?values 返回hash里的所有value,返回结果为sequence  
例如:  
<#assign user={“name”:“hailang”, “sex”:“man”}>  
<#assign keys=user?keys>  
<#list keys as key>  
${key}=${user[key]}  
</#list> 

Hash的内置函数
1. hash?keys 返回hash里的所有key,返回结果为sequence

2.hash?values 返回hash里的所有value,返回结果为sequence
例如:
<#assign user={“name”:“hailang”, “sex”:“man”}>
<#assign keys=user?keys>
<#list keys as key>
${key}=${user[key]}
</#list>

参考文献  http://blog.youkuaiyun.com/hbhgjiangkun/article/details/7283634

转载地址 http://blog.youkuaiyun.com/niuch1029291561/article/details/8190617


接入 deepseek 实现AI智能问诊 必须包含user角色,用于传递用户输入。system角色可选,用于设置对话背景。多轮对话需要将历史记录添加到messages中。 阅读详情

相关推荐

【CSP-J/S初赛知识点整理】

CSP-J/S初赛知识点整理

qq_43884946的博客 1万+

ftl if else判断_巧妙的使用if语句

if语句的结构,语法中要注意冒号,判断是否等于要使用双等号,满足条件要使用缩进if是如果的意思,表示判断。在编程语言中if语句是指用来判断给定的条件是否满足,根据判定的结果执行代码块。if语句的返回值为真或假(True或False),可以用bool型变量进行存储,占用一字节。if语句的语法语法格式如下所示:if 判断条件: 执行语句else: 执行语句if后面接的是判断条件,当判断条件...

weixin_39877581的博客 4614

生态位宽度计算&可视化展示(R语言)

物种的生态位越宽,该物种的特化程度就越小,倾向于泛化种(generalist species);物种的生态位越窄,倾向于是一个特化种(specialists species)。生态位宽度是指物种(或其它生物单位)在群落中所利用的各种不同资源的总和。本篇所使用为生态位宽度指数即**Levins的生态位宽度指数。

weixin_53705272的博客 4435

Freemarker的FTL指令之include和if指令

Freemarker的FTL指令之include和if指令 include指令用于模板文件的嵌套

Running_Tiger的博客 1万+

【MATLAB强化学习工具箱】学习笔记--在Simulink环境中训练智能体Create Simulink Environment and Train Agent

Simulink中便于搭建各类动力学与控制模型,通过将原有的控制器替换为AI控制器,可以方便使用已有模型,提供增量效果。 本节的重点是如何引入Simulink模型作为env,其他的内容在之前的文章中已有说明。 以水箱模型watertank为例,如下图所示: 采用PI控制器,控制效果如下所示: 将此PI控制器替换为神经网络控制器后,系统架构如下图所示: 具体替换策略如下所示: (1)删去PID控制器; (2)增加RL Agent模块; (3)观测器模块: 观测向量为:,其中...

bear_miao的博客 1万+

新手必看!Stata工具变量分析中的三大陷阱:如何正确解读LM统计量、CDW检验和Hansen J值

本文深度解析Stata工具变量分析中的三大核心检验:不可识别检验、弱IV检验和过度识别检验,帮助新手避开常见陷阱。详细解读LM统计量、CDW检验和Hansen J值的正确使用方法,提供实战案例和Stata操作指南,确保研究结论的可靠性。

weixin_29231027的博客 575

Freemarker一些常用的标签及用法

Freemarker 1.注解: 2.if标签 if判断标签 3 ==成立就进入,不成立就不进入 和java里面一样处理 输出1 输出2 首先 为一个if判断   如果需要使用elseif需要在if标签里面加上在elseif里面不需要加 最后也可以加上标签在这里else和java里面一样不需要加上判断条件只需

qq_35989490的博客 1306

Ubuntu22.04+Docker一键部署Autoware Universe避坑指南(附鱼香ROS配置)

本文详细介绍了在Ubuntu22.04系统中使用Docker一键部署Autoware Universe的完整流程,包括鱼香ROS工具链配置、Docker环境优化及VSCode开发环境集成。通过实战指南帮助开发者快速搭建自动驾驶开发环境,解决常见部署问题,提升开发效率。

weixin_29254673的博客 417

Freemaker FTL指令常用标签及语法

FTL指令常用标签及语法 注意:使用freemaker,要求所有标签必须闭合,否则会导致freemaker无法解析。 freemaker注释:<#-- 注释内容 -->格式部分,不会输出 ---------------------------------- 基础语法 ---------------------------------- 1、字符输出 ${emp.name?if...

liyongshun82的博客 2375

手把手教你用闲置安卓手机+蓝鲸支付,零成本搞定个人项目自动收款(附私有化部署教程)

本文详细介绍了如何利用闲置安卓手机和蓝鲸支付系统,零成本搭建个人项目自动收款解决方案。通过私有化部署教程,读者可以学习到从手机选择、系统配置到支付渠道对接的全流程,实现安全、高效的收款系统,特别适合个人开发者和小型项目使用。

weixin_29597551的博客 335

金蝶云星空核心数据表解析与高效关联查询指南

本文深入解析金蝶云星空核心数据表结构,提供高效关联查询的实战指南。文章详细介绍了基础资料、业务单据和财务模块的关键表及其关联逻辑,重点阐述了如何利用关联表(_LK表)进行跨单据溯源,并分享了编写高性能SQL的实用技巧与避坑建议,帮助开发者、实施顾问和数据分析师快速掌握数据查询方法,提升工作效率。

weixin_29254673的博客 527

FTL指令常用标签及语法

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.youkuaiyun.com/pengpengpeng85/article/details/52070602 FTL指令常用标签及语法 注意:使用freemaker,要求所有标签必须闭合,否则会导致freemaker无法解析。 freemaker注释:<#-- 注...

weixin_39377724的博客 1447

idea出现 EXCEPTION_ACCESS_VIOLATION (0xc0000005) 的解决方法

idea启动的时候出现如下问题,以为没啥事,就索性关闭 后面再打开idea的时候发现直接闪退,之后打开其他软件,直接蓝屏

码农研究僧的博客 4817

Freemarker FTL指令常用标签及语法

FTL指令常用标签及语法 注意:使用freemaker,要求所有标签必须闭合,否则会导致freemaker无法解析。 freemaker注释:<#-- 注释内容 -->格式部分,不会输出 ---------------------------------- 基础语法 ---------------------------------- 1、字符输出 ${emp.name?if_ex...

shenshaoming的博客 2856

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Freemaker FTL常用标签及语法(超级详细)

FTL指令常用标签及语法 注意:使用freemaker,要求所有标签必须闭合,否则会导致freemaker无法解析。 freemaker注释:<#-- 注释内容 -->格式部分,不会输出 ---------------------------------- 基础语法 ---------------------------------- 1、字符输出 ${emp.name?if_exists}      // ...

7900

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

freemarker FTL常用标签及语法

http://blog.youkuaiyun.com/niuch1029291561/article/details/8190617 判断对象是否存在,若成立说明存在            判断知否和某一个值相等(先判断是否存在,在判断相等,如果该指定的参数不存在还比较相等的话就回出错) list循环(循环遍历list并给遍历的对象取别名attribute以方便后面对象调

every_evy的博客 1021

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

上一篇: spring与mybatis三种整合方法
下一篇: 条件注释判断浏览器<!--[if !IE]><!--[if IE]><!--[if lt IE 6]><!--[if gte IE 6]>
VagueCoder
博客等级 码龄13年 4粉丝 8原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值