如何在FreeMarkerJS中有效使用和管理变量?

FreemarkerJS是一款强大的Java模板引擎,用于将数据模型和模板结合生成动态的HTML、电子邮件、配置文件等,在Freemarker中,变量的使用是其核心功能之一,通过灵活的变量处理,可以实现丰富的动态内容展示,下面详细介绍Freemarker中的变量使用:

freemarkerjs变量

Freemarker模板文件的基本组成部分

1、文本:直接输出的内容部分。

2、注释:不会输出的内容,格式为<#-注释内容 -->

3、取值(插值):代替输出数据模型的部分,格式为${数据模型}#{数据模型}

4、FTL指令:Freemarker指令,类似于HTML标记,内建指令包括开始标签、结束标签和空标签。

Freemarker语法及使用方法

取值(插值)指令及适用类型

1、${var}:适用于Java中常用的八大基本类型以及String引用类型,需要注意的是,Freemarker中boolean类型显示时true==yes,false==no。

freemarkerjs变量

示例:

   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>

展示结果:

freemarkerjs变量

   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

Like (0)
Donate 微信扫一扫 微信扫一扫
K-seo的头像K-seoSEO优化员
Previous 2024-12-17 09:10
Next 2024-12-17 09:14

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

免备案 高防CDN 无视CC/DDOS攻击 限时秒杀,10元即可体验  (专业解决各类攻击)>>点击进入