freemarker判空容错

本文深入探讨了Freemarker模板语言中的容错处理方式,包括如何使用三元运算符和条件判断来避免模板运行时的错误。通过具体实例展示了在页面显示和if判断场景下如何实现容错,确保模板的稳定性和用户体验。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 http://hw1287789687.iteye.com/blog/2271501

freemarker如何判空容错呢? 

freemark是什么? 
freemark是java后台的模板语言 
如果模板使用vm中没有的变量就会报错 
怎么办呢? 
针对使用场景分为两种:

(1)用于页面显示

 

Html代码    收藏代码
  1. <span class="info-date">${old_order_startTime!'--'}  

 使用感叹号,如果没有设置值,就使用感叹号后面的”–”为默认值 

 

实例: 

 

 

(2)用于if判断

 

Html代码    收藏代码
  1. <#if orderInfo.couponList??>  
  2.                 <#list orderInfo.couponList as ite>  
  3.                     <p>- 红包:&nbsp;  
  4.                         ¥${ite.couponPay}</p>  
  5.                 </#list>  
  6.             </#if>  

 使用形式概览:unsafe_expr??或(unsafe_expr)??

 

这个操作符告诉我们一个值是否存在。基于这种情况,结果是 true 或 false。 示例如下,假设并没有名为 mouse 的变量:

 

Html代码    收藏代码
  1. <#if mouse??> Mouse found  
  2.   
  3. <#else>  
  4.   
  5. No mouse found </#if>  
  6.   
  7. Creating mouse...  
  8.   
  9. <#assign mouse = "Jerry"> <#if mouse??>  
  10.   
  11. Mouse found <#else>  
  12.   
  13. No mouse found </#if>  

 输出为: 

 

No mouse found

Creating mouse…

Mouse found 
访问非顶层变量的使用规则和默认值操作符也是一样的,即 product.color??和 (product.color)?? 

(3)判断时也可以使用默认值



 

 

Html代码    收藏代码
  1. <!DOCTYPE html>  
  2. <html>  
  3. <head>  
  4. <meta charset="UTF-8">  
  5. <title>freemarker demo</title>  
  6. </head>  
  7. <body>  
  8. ${username} <br />  
  9. ${age}<br />  
  10. ${sex!} <br>  
  11. <#if (sex!23) ==23 >  
  12. ok  
  13. <#else>  
  14. no  
  15. </#if>  
  16. </body>  
  17. </html>  

 

(4)比较时必须是同类型的比较

int 和string 类型比较就会报错

freemarker 开发文档见附件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值