freemarker基本语法

4D毫米波雷达点云可视化实战:从CANFD原始数据到Matplotlib三维动态图 本文详细介绍了4D毫米波雷达点云可视化实战,从CANFD原始数据解析到Matplotlib三维动态图实现的全流程。通过解析CANFD数据帧结构、点云数据编码原理,并结合Python实现CANFD通信接口,帮助开发者掌握4D雷达数据处理与优化技巧,最终实现高性能的3D点云动态可视化。 阅读详情
  • <html>  
  •   
  • <head>  
  •   
  •   <title>ftl基本语法使用示例</title>  
  •   
  • </head>  
  •   
  • <body>  
  •   
  •    
  •   
  • <center>  
  •   
  • <h2>1.字符串处理</h2>  
  •   
  • <#assign msg=' this IS the Test of freemarker & output'>  
  •   
  • 后台放入字符串:${msg}<br>  
  •   
  • html编码:${msg?html}<br>  
  •   
  • 转第一个字母大写:${msg?cap_first}<br>  
  •   
  • <#-- 转第一个字母小写:${msg?lower_first}<br>-->  
  •   
  • 字符串大写:${msg?upper_case}<br>  
  •   
  • 字符串小写:${msg?lower_case}<br>  
  •   
  • 去左右空格:${msg?trim}<br>  
  •   
  •    
  •   
  • 空值判断:${msg?if_exists}<br>  
  •   
  • 默认值abc:${msg?default('abc')}<br>  
  •   
  •    
  •   
  • 输出纯文本:${r"c:/ad/dfa"}<br>  
  •   
  • 插入boolean值false:<#assign foo=false/>${foo?string('true','false')}<br>  
  •   
  • 取下标为2的字符:${msg[2]}<br>  
  •   
  • 取字串1-7:${msg[1..7]}<br>  
  •   
  • 字符串拼接:  
  •   
  • <#assign ab="abc">  
  •   
  • ${"hello "+ab}/${"hello${ab}"}  
  •   
  • <br>  
  •   
  •    
  •   
  • <hr>  
  •   
  • <h2>2.数字处理</h2>  
  •   
  • 赋值 assign x=3.1415926<br>  
  •   
  • <#assign x=3.1415926 />  
  •   
  • x:m3小数部分最小3位  #{x;m3}<br>  
  •   
  • x:M5小数部分最大5位   #{x;M5}<br>  
  •   
  • x:m1M5   #{x;m1M5}<br>  
  •   
  • 运算结果:3*5=${3*5}<br>  
  •   
  • 内建int 1.1?int=:${1.1?int}<br>  
  •   
  • <br>  
  •   
  • 赋值assign  y=20<br>  
  •   
  • <#assign y=20>  
  •   
  • 输出数字原:${y?string.number}<br>  
  •   
  • 输出货币数字:${y?string.currency}<br>  
  •   
  • 输出百分比:${y?string.percent}<br>  
  •   
  •    
  •   
  • 比较大小 21(使用括号): y>21=  
  •   
  • <#if (y >21) >  
  •   
  • false  
  •   
  • <#else>  
  •   
  • true  
  •   
  • </#if>  
  •   
  • <br>  
  •   
  •    
  •   
  • 比较大小 21(使用字串):y>21=  
  •   
  • <#if y gt 21>  
  •   
  • false  
  •   
  • <#else>  
  •   
  • true  
  •   
  • </#if>  
  •   
  •    
  •   
  • <br>  
  •   
  •    
  •   
  • 转义字符:${r"<  lt     <= lte       >  gt       >= gte"}  
  •   
  • <br>  
  •   
  •    
  •   
  • <hr>  
  •   
  • <h2>3.其他处理</h2>  
  •   
  • 日期: <br>  
  •   
  •    
  •   
  • 格式化输出:${date?string('yyyy-MM-dd')}<br>  
  •   
  • 格式输出yyyy-MM-dd HH:mm:ss zzzz:${date?string("yyyy-MM-dd HH:mm:ss zzzz")}<br>  
  •   
  •    
  •   
  • <hr>  
  •   
  • <h2>4.流程控制</h2>  
  •   
  • 赋值:assign a = '1'<br>  
  •   
  • A.if - else逻辑判断<br>  
  •   
  • <#assign a = '1'>  
  •   
  • <#if a='0'>  
  •   
  • 0  
  •   
  • <#elseif a='1'>  
  •   
  • 1  
  •   
  • <#else>  
  •   
  • 2  
  •   
  • </#if>  
  •   
  • <br>  
  •   
  • B.Switch<br>  
  •   
  • <#switch a>  
  •   
  •     <#case '0'>  
  •   
  •          0  
  •   
  •     <#break>  
  •   
  •     <#case '1'>  
  •   
  •          1  
  •   
  •     <#break>  
  •   
  •     <#default>  
  •   
  •        2  
  •   
  • </#switch>  
  •   
  • <br>  
  •   
  • C.遍历list<br>  
  •   
  • 后台传递list:stuList<br>  
  •   
  •    
  •   
  • 判断是否为空:  
  •   
  • <#if stuList?size=0>  
  •   
  • 空的  
  •   
  • <#else>  
  •   
  • 非空  
  •   
  • </#if>  
  •   
  • <br>  
  •   
  • 下标:  
  •   
  • <#list stuList as stu>  
  •   
  •     ${stu_index}  
  •   
  • </#list><br>  
  •   
  • 内容:  
  •   
  • <#list stuList as stu>  
  •   
  •     ${stu.name}  
  •   
  • </#list><br>  
  •   
  •    
  •   
  •    
  •   
  • <hr>  
  •   
  • <h2>5.集合</h2>  
  •   
  •    
  •   
  • 定义list["winter","spring","summer","autumn"]<br>  
  •   
  • 输出:<#list ["winter","spring","summer","autumn"] as x>  
  •   
  • ${x}  
  •   
  • </#list>  
  •   
  • <br>  
  •   
  • list[1..5]  
  •   
  • <#list 1..5 as list>  
  •   
  • ${list}  
  •   
  • </#list>  
  •   
  • <br>  
  •   
  • 定义Map{"abc":23,"efg":35}<br>  
  •   
  • <#assign ages={"abc":23,"efg":35}>  
  •   
  • 输出abc的年龄:${ages.abc}<br>  
  •   
  • 输出efg的年龄:${ages.efg}<br>  
  •   
  • 定义map,分别输出K-V  
  •   
  • <#assign selectelement  = {"1":"选择A","2":"选择B","3":"选择C", "4":"选择D"}>  
  •   
  • <#assign skeys=selectelement?keys>  
  •   
  • <#list skeys as key>  
  •   
  •    <#assign var0="${selectelement[key]}">  
  •   
  •     ${key}-${selectelement[key]}  
  •   
  •     ----  
  •   
  •     ${var0}   
  •   
  • </#list><br>  
  •   
  •    
  •   
  • 序列连接["a","b"]+["e","f"]:  
  •   
  • <#assign liab=["a","b"]+["e","f"]>  
  •   
  • <#list liab as l >  
  •   
  • ${l}  
  •   
  • </#list><br>  
  •   
  •    
  •   
  • 散列连接{"1":"a","2":"b"}+{"2":"c","3":"d"}【散列右值覆盖左值】:  
  •   
  • <#assign ma={"1":"a","2":"b"}+{"2":"c","3":"d"} >  
  •   
  • <#assign keys=ma?keys >  
  •   
  • <#list keys as k>  
  •   
  • ${ma[k]}  
  •   
  • </#list><br>  
  •   
  •    
  •   
  • 双重list循环<br>  
  •   
  • <#list num as list>  
  •   
  •     <#list list as temp>  
  •   
  •        ${temp}      
  •   
  •     </#list>  
  •   
  •     <br>  
  •   
  • </#list>  
  •   
  • <br>  
  •   
  •    
  •   
  • <hr>  
  •   
  • <h2>6.宏的使用</h2>  
  •   
  • A.使用宏  
  •   
  • <#macro greet person color>  
  •   
  •  <font size="+2" color="${color}">Hello ${person}!</font>  
  •   
  • </#macro>  
  •   
  • <@greet person="ken" color="blue"/>  
  •   
  • <br>  
  •   
  • B.宏调用和嵌套nested:<br>  
  •   
  • <#macro border msg>  
  •   
  • ${msg}<br>  
  •   
  • <#nested><br>  
  •   
  • repart:<br>  
  •   
  • <#nested><br>  
  •   
  • </#macro>  
  •   
  • <@border msg="The OUT MSG:">  
  •   
  • Macro Test!  
  •   
  • </@border>  
  •   
  • <br>  
  •   
  •    
  •   
  • C.宏与宏之间的嵌套:<br>  
  •   
  • <#macro person name>  
  •   
  • Hello! ${name}<br>  
  •   
  • </#macro>  
  •   
  • <@border msg="The OUT MSG:">  
  •   
  •    
  •   
  • <@person name="Ken"/>  
  •   
  •    
  •   
  • </@border><br>  
  •   
  •    
  •   
  • D.宏变量中使用循环变量<br>  
  •   
  • <#macro repeat count>  
  •   
  • <#list 1..count as x>  
  •   
  • <#nested x,x/2,x==count />  
  •   
  • </#list>  
  •   
  • </#macro>  
  •   
  •    
  •   
  • <@repeat count=4;c,halfc,last>  
  •   
  • ${c}. ${halfc}<br>  
  •   
  • <#if last>  
  •   
  • last!  
  •   
  • </#if>  
  •   
  • </@repeat>  
  •   
  • </center>  
  •   
  •    
  •   
  • </body>  
  •   
  • </html>  
  •   
  •    
  •   
  •    
  •   
  •    
  •   
  •    
  •   
  • 可以在一个ftl中专门定义宏文件  
  •   
  • <#macro page title>  
  •   
  • </#macro>  
  •   
  •    
  •   
  • 然后在另一个文件中使用import调用  
  •   
  • <#import "/page/ftl/macro/common.ftl" as com>  
  •   
  • 使用  
  •   
  • <@com.page title="">  
  •   
  • </@com.page>
蓝牙RSSI定位实战:用Arduino+BLE4.0搭建厘米级室内定位系统(附完整代码) 本文详细介绍了如何利用Arduino和BLE4.0模块构建厘米级精度的蓝牙RSSI室内定位系统。通过硬件选型、系统架构设计、三点定位算法实现及误差补偿技术,实现在商场导览、仓储管理等场景中的高精度定位。附完整代码和实测数据,帮助开发者快速部署商用级解决方案。 阅读详情

相关推荐

Adams中AKISPL和DX函数的妙用:打造精准的非线性衬套模型

本文深入探讨了在Adams动力学软件中,如何巧妙运用AKISPL插值函数与DX等位移测量函数,构建高精度的非线性衬套模型。文章通过实战案例,详细解析了从单轴非线性刚度到完整六自由度耦合模型的实现步骤与调试技巧,帮助工程师将复杂的实验或有限元数据转化为可靠的多体动力学仿真模型,有效提升系统仿真置信度。

sky77的博客 317

freemarker常见语法大全

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

weixin_44975322的博客 3568

解决UNITE数据库注释高unassigned率:手把手教你训练专属真菌分类器(含预训练模型分享)

本文针对使用UNITE数据库进行真菌ITS序列注释时出现的高未分配率问题,提供了详细的实战解决方案。通过对比vsearch直接注释与Naive Bayes分类器的原理差异,文章手把手指导读者在QIIME 2环境中训练专属分类器,包括数据准备、模型训练、参数优化及效果验证,并分享了预训练模型,旨在显著提升真菌群落分析的注释准确性和数据利用率。

weixin_29214199的博客 338

Freemarker 语法

Freemarker 语法: 通常我们开发页面都会用一些成熟的UI框架,而且大多数都是用Json数据进行交互,所以接下来的内容仅作字典使用,以备不时之需。 FreeMarker模板文件主要由如下4个部分组成: 1 文本:直接输出的部分 2 注释:&lt;#-- ... --&gt;格式部分,不会输出 3 插值:即${...}或#{...}格式的部分,将使用数据模型中的部分替代输出...

LI_AINY的博客 730

SIwave仿真手册——软件基础(一)

最近在学习SIWAVE,在这里将自己的笔记整理一下,做一个专题。希望对大家有帮助,这个会持续更新的。仅限于软件操作学习,不涉及信号完整性的讨论。

luohuo9844的博客 4万+

freemaker常用的语法大全

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

perfectyw的博客 1603

基于YOLOv8的表面裂痕等缺陷检测:深度学习与UI界面的实践

本文详细介绍了如何使用YOLOv8进行表面裂痕等缺陷检测,并结合图形用户界面展示检测结果。通过YOLOv8的强大能力,我们可以实现高效、准确的表面缺陷检测,提升工业产品的质量控制水平。未来,随着深度学习技术和数据集的不断发展,表面缺陷检测的精度和速度将不断提升,应用领域也将进一步拓展。希望本文的实践能够为深度学习在工业检测领域的应用提供一些启示。

YOLO 549

FreeMarker的基本语法

新的项目需要用到freemarker模版引擎,在这里总结和记录一下基本语法。

mengameng97的博客 1928

详细解释SigLIP的原理,为什么有些多模态模型喜欢用他?怎么应用于机器人控制呢

详细解释SigLIP的原理,为什么有些多模态模型喜欢用他?怎么应用于机器人控制呢。

具身机器人和通用AI 1225

用 Python 和 XGBoost 进行疾病诊断预测

疾病诊断预测是医疗领域的重要研究方向,准确的疾病诊断预测可以帮助医生提前制定治疗方案,提高治疗效果,降低医疗成本。本文章的目的是介绍如何使用 Python 和 XGBoost 算法构建疾病诊断预测模型。范围涵盖了从数据预处理、模型训练到模型评估的整个流程,同时通过实际案例展示如何将该模型应用于疾病诊断预测中。本文首先介绍了疾病诊断预测的背景和 XGBoost 算法的核心概念,然后详细讲解了 XGBoost 算法的原理和具体操作步骤,包括 Python 代码实现。

AI Python 编程之道的博客 1064

Freemarker的基本语法及使用大全

Freemarker常见语法大全和使用

qq_44430410的博客 1万+

R语言使用mlr包创建回归任务、指定回归学习函数为KNN回归模型、网格搜索、交叉验证调节KNN模型的超参数K获取模型最佳的K值、可视化KNN模型的不同K值和MSE指标之间关系图

R语言使用mlr包创建回归任务、指定回归学习函数为KNN回归模型、网格搜索、交叉验证调节KNN模型的超参数K获取模型最佳的K值、可视化KNN模型的不同K值和MSE指标之间关系图

statistics+insight+vista+power 278

Freemarker基本语法

一、概念 Freemarker是一款模板引擎,并用来输出文本,网页或配置文件等。 二、语法 2.1 注释 <!-- 在页面可以看的到 --> <#-- 在页面看不到 --> 2.2 数据类型 布尔类型boolean 不能直接输出,需要转换成字符串,用c转换。 后端返回msg=true # 错误 ${msg} # 正确 方法一: ${msg?c} 方法二: ${msg?string} 方法三: ${msg?string('是字符串','不是字符串')}

小强崽的博客 687

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Spring Boot中的Freemarker基本语法

FreeMarker 是一款 模板引擎: 即一种基于模板和要改变的数据, 并用来生成输出文本(HTML网页,电子邮件,配置文件,源代码等)的通用工具。 它不是面向最终用户的,而是一个Java类库,是一款程序员可以嵌入他们所开发产品的组件。 模板编写为FreeMarker Template Language (FTL)。它是简单的,专用的语言, 不是 像PHP那样成熟的编程语言。 那就意味着要准备数...

zhouym_的博客 1773

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

FreeMarker四:FreeMarker基本语法:分支判断

接上篇博客: 目录 一:if分支判断 (1)基本范例 (2)??判断对象是否为空;true:不为空;false:为空 (3)Freemarker中判断字符串是否相等使用“==” 二:switch分支判断 判断分支 一:if分支判断 (1)基本范例 (2)??判断对象是否为空;true:不为空;false:为空 解决办法:输出的时候判断一下: (3)Freemarker中判断字符串是否相等使用“==” Java中判断字符串是否相等,使用equals()方法;而Free

小枯林的博客 3704

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

Freemarker的基本语法及入门基础

文章: Freemarker的基本语法及入门基础

qq_33172029的博客 231

freemarker的基本语法

freemarker的基本语法及入门基础 一、freemarker模板文件(*.ftl)的基本组成部分 1. 文本:直接输出的内容部分 2. 注释:不会输出的内容,格式为<#-- 注释内容 --> 3. 取值(插值):代替输出数据模型的部分,格式为${数据模型}或#{数据模型} 4. ftl指令:Freemarker指令,类似于HTML标记。 内建指令:开始标签:<#dire...

ThatsThePrice的博客 1191

FreeMarker基本语法

给大家分享下freemarker模板引擎的基础知识,网上查了下资料,关于这方面的博客很多但都是原封不动抄袭别人的,这篇文章虽然不是最好的,但也总好过全部copy别人的。

技术成就梦想 4088

简易配置freemarker和基本语法

简易配置freemarker FreeMarker 中文官方参考手册http://freemarker.foofun.cn/ FreeMarker具有一些编程的能力,但通常由Java程序准备要显示的数据,由FreeMarker生成页面,通过模板显示准备的数据(如下图) 创建freemarker模板 点击+号新建一个files,生成一个默认的文件 项目结构 步骤 1.创建maven项目导入对应的jar包 2.创建目录templaters,并创建freemarket模板文件index.ftl,编写yml

qq_45928896的博客 1147

Freemarker 学习笔记 《基本语法》

基本语法 ${变量名} 这样就能解析出来,和EL一样不知道是否巧合。 参考资料 FreeMarker在线手册 Freemarker 语法入门 FreeMarker 快速入门 《FreeMarker教程-笔录》 ...

灵台方寸山斜月三星洞 681

Freemarker基本语法 及与 SpringMVC、Springboot集成的基本操作

Freemarker简介与语法 Apache FreeMarker™是一个模板引擎:一个Java库,用于根据模板和更改数据生成文本输出(HTML网页,电子邮件,配置文件,源代码等)。模板是用FreeMarker模板语言(FTL)编写的,这是一种简单的专用语言(不像PHP这样的完整编程语言)。通常,使用通用编程语言(如Java)来准备数据(发布数据库查询,进行业务计算)。然后,Apache Free...

XiaoxBai__的博客 874
上一篇: freemarker导出word带图片
下一篇: jxls 使用模板文件导出生成excel
7star_java
博客等级 码龄15年 80粉丝 127原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值