当前位置:首页 > Web开发 > 正文

不会输出在FreeMarker中

2024-03-31 Web开发

标签:

根基语法 ${…}: 称为interpolations,FreeMarker会在输出时用实际值进行替代。 <#…>: FTL符号(FreeMarker模板语言符号),类似于HTML符号,,为了与HTML符号区分 <@>: 宏,自界说标签 1, 文本: 直接输出的部分 2, 注释: <#-- --> 格局部分,不会输出 3, 插值: 即 ${} 或 #{} 格局的部分,将使用数据模型中的部分替代输出 FreeMarker的插值有如下两种类型: 1, 通用插值 ${} 2, 数字格局化插值: #{expr} 或 #{expr;format} 通用插值: 对付通用插值,又可以分为以下4种情况: 1, 插值功效为字符串值: 直接输出表达式功效 字符串输出: ${"Hello ${name}"} / ${"Hello " + name} 字符串截取: 通过下标直接获取下标对应的字母: ${name[2]} 起点下标..结尾下标截取字符串: ${name[0..5]} 2, 插值功效为数字值: 按照默认格局将表达式功效转换成文本输出 <#assign answer=42/> ${answer?string.number} //42 ${answer?string.percent} //4200% 3, 插值功效为日期值: 按照默认格局将表达式功效转换成文本输出 ${lastUpdated?string("yyyy-MM-dd HH:mm:ss zzzz")} //2008-04-08 08:08:08 Pacific Daylight Time ${lastUpdated?string("EEE, MMM d, yy")} //Tue, Apr 8, 03 ${lastUpdated?string("EEEE, MMMM dd, yyyy, hh:mm:ss a '('zzz')'")} //Tuesday, April 08, 2003, 08:08:08 PM (PDT) 4, 插值功效为布尔值: 按照默认格局将表达式功效转换成文本输出 <#assign foo=true/> ${foo?string("yes", "no")} //yes 数字格局化插值: 数字格局化插值可给与#{expr;format}形式来格局化数字,此中format可以是: mX:小数部分最小X位 MX:小数部分最大X位 <#assign y=4/> #{x; m1M2} //4.0 4, FTL指令: FreeMarker指定,和HTML符号类似,名字前加#予以区分,不会输出 在FreeMarker中,使用FTL标签来使用指令,FreeMarker有3种FTL标签,这和HTML标签是完全类似的: 1, 开始标签: <#directivename parameter> 2, 结束标签: </#directivename> 3, 空标签: <#directivename parameter/> 使用标签时前面的标记 # 也可能酿成 @, 如果该指令是一个用户指令而不是系统内建指令时, 应将 # 标记改成 @ 标记 <#assign/>: 在前面已经使用了多次,它用于为该模板页面创建或替换一个顶层变量 <#setting name=value>: 用来设置整个系统的一个环境:<#setting locale="en_US"> 对照运算符: <#if number1 + number2 gte 12 || number1 - number2 lt 6> "*" : ${number1 * number2} <#else> "/" : ${number1 / number2} </#if> 内建函数: <#assign data = "abcd"> 第一个字母大写:${data?cap_first} 所有字母小写:${data?lower_case} 所有字母大写:${data?upper_case} html:对字符串进行HTML编码 trim:去失字符串前后的空白字符 <#assign floatData = 12.34> 数值取整数:${floatData?int} 获取调集的长度:${users?size} 时间格局化:${dateTime?string("yyyy-MM-dd")} 空判断和东西调集: !   指定缺掉变量的默认值;一般配置变量输出使用 ??   判断变量是否存在。一般共同if使用 <#if value??></#if> <#if users??> <#list users as user > ${user.id} - ${user.name} </#list> <#else> ${user!"变量为空则给一个默认值"} </#if> Map调集: <#assign mapData={"name": "措施员", "salary": 15000}> 直接通过 Key 获取 Value 值: ${mapData["name"]} 通过Key遍历Map: <#list mapData?keys as key> Key: ${key} - Value: ${mapData[key]} </#list> 通过Value遍历Map: <#list mapData?values as value> Value: ${value} </#list> List调集: <#assign listData=["ITDragon", "blog", "is", "cool"]> <#list listData as value>${value}</#list> include指令: 引入其他文件:<#include "otherFreeMarker.ftl"/> macro宏指令: <#macro mo> 界说无参数的宏macro -- ${name} </#macro> 使用宏macro: <@mo/> <#macro moArgs a b c> 界说带参数的宏macro -- ${a+b+c} </#macro> 使用带参数的宏macro: <@moArgs a=1 b=2 c=3/> noparse指令: 指定FreeMarker不措置惩罚惩罚该指定里包罗的内容 <#noparse>…</#noparse> Springboot + Freemarker 集成配置 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-freemarker</artifactId> </dependency> Freemarker 页面目录配置 spring: mvc: view: prefix: /templates/ suffix: .ftl

Apache FreeMarker

温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/web/30954.html