FreemarkerJS是一款强大的Java模板引擎,用于将数据模型和模板结合生成动态的HTML、电子邮件、配置文件等,在Freemarker中,变量的使用是其核心功能之一,通过灵活的变量处理,可以实现丰富的动态内容展示,下面详细介绍Freemarker中的变量使用:
Freemarker模板文件的基本组成部分
1、文本:直接输出的内容部分。
2、注释:不会输出的内容,格式为<#-注释内容 -->
。
3、取值(插值):代替输出数据模型的部分,格式为${数据模型}
或#{数据模型}
。
4、FTL指令:Freemarker指令,类似于HTML标记,内建指令包括开始标签、结束标签和空标签。
Freemarker语法及使用方法
取值(插值)指令及适用类型
1、${var}
:适用于Java中常用的八大基本类型以及String引用类型,需要注意的是,Freemarker中boolean类型显示时true==yes,false==no。
示例:
String strVar = "世界你好"; int intVar = 10; boolean booVar = true;
页面中获取变量:
<font color="red">${strVar}</font><br> <font color="red">${intVar}</font><br> <font color="red">${booVar?string("yes","no")}</font>
展示结果:
String获取:世界你好 int获取:10 boolean获取:yes
2、${var!}
:对null或者不存在的对象进行取值,可以设置默认值,例:${var!'我是默认值'}
,即,有值时显示正常值,无值时显示默认值。
示例:
String strVar = "世界你好"; String str = null;
页面中获取变量:
<font color="red">${strVar!"我是空"}</font><br> <font color="red">${str!}</font><br> <font color="red">${str!"默认"}</font><br>
展示结果:
String获取:世界你好 str获取: str获取:默认
3、${封装对象.属性}
:对封装对象进行取值,例:${User.name}
。
示例:
class User { String name = "姓名"; int age = 18; }
页面中获取变量:
<font color="red">${User.name}</font><br> <font color="red">${User.age}</font><br>
展示结果:
name获取:姓名 age获取:18
4、${date?String('yyyy-MM-dd')}
:对日期格式进行取值,在这里要强调的是,定义Date类型的变量时,java.util.Date无法输出日期,须使用java.sql.Date。
示例:
java.sql.Date date = new Date().getTime(); java.sql.Date time = new Date().getTime(); java.sql.Date datetime = new Date().getTime();
页面中获取变量:
<font color="red">${date?string('yyyy-MM-dd')}</font><br> <font color="red">${date?string('HH:mm:ss')}</font><br> <font color="red">${date?string('yyyy-MM-dd HH:mm:ss')}</font><br>
展示结果:
name获取:姓名 age获取:18
5、${var?html}
:转义HTML内容。
示例:
class Menu { String name = " freemarker "; String model = "<font color = 'red'>我只是个菜单</font>"; }
页面中获取变量:
非转义获取:<font color="red">${m.model}</font><br> 转义获取:${m.model?html}<br>
展示结果:
非转义获取:我只是个菜单 转义获取:<font color='red'>我只是个菜单</font>
6、<#assign num = 100 />
:定义变量,支持计算和赋值。
示例:
<#assign num = 100 /> num获取:<font color="red">${num}</font><br> 计算结果:<font color="red">${num * 10}</font><br>
展示结果:
num获取:100 计算结果:1000
7、对List集合进行取值。
示例:
List<String> strList = new ArrayList<>(); strList.add("第一个值"); strList.add("第二个值"); strList.add("第三个值");
页面中获取变量:
<#list strList as item>${item} --取值</#list>
展示结果:
第一个值 第二个值 第三个值
Freemarker中的变量类型转换与高级用法
Freemarker不仅支持简单的变量替换,还支持复杂的逻辑控制,如循环、条件判断等,可以使用<#list>
标签进行循环,在实际应用中,可以根据需求进行更多的自定义配置和扩展,Freemarker还可以与JavaScript集成,通过AJAX请求将变量值作为参数发送到服务器,并在服务器端使用Freemarker语法获取和处理这些参数。
Freemarker中的变量使用非常灵活且强大,能够满足各种动态内容生成的需求,无论是简单的变量替换还是复杂的逻辑控制,Freemarker都能提供有效的解决方案。
到此,以上就是小编对于“freemarkerjs变量”的问题就介绍到这了,希望介绍的几点解答对大家有用,有任何问题和不懂的,欢迎各位朋友在评论区讨论,给我留言。
原创文章,作者:K-seo,如若转载,请注明出处:https://www.kdun.cn/ask/742278.html