freemarker处理不存在的变量
在实际应用中数据模型经常会有可选的变量。除了
一些典型的人为原因导致失误,FreeMarker 不能容忍引用不存在的。
一个不存在的变量和一个是null 的变量,对于FreeMarker 来说是一样的,所以这里所指的丢失包含这两种情况。
1.不论在哪里引用变量,都可以指定一个默认值来避免变量丢失这种情况,通过在变量名
后面跟着一个!和默认值。
eg:
<h1>Welcome ${user!"yale"}!</h1>或者<h1>Welcome ${user!' '}!</h1>
2.当然也可以在变量名后面通过放置??来询问FreeMarker 一个变量是否存在。将它和if
指令合并,那么如果user 变量不存在的话将会忽略整个代码。
eg:
<#if user??><h1>Welcome ${user}!</h1></#if>
对于多级访问变量也是如此:<#if (animals.python.price)!0>....</#if> 或者<#if (animals.python.price)??>....</#if>