FreeMarker與Web容器無關,也就是在Web執行時,它並不知道Servlet或HTTP。它不僅可以用作表現層的實作技術,還可以用於生成XML,JSP或Java 等。
freemarker中顯示某物件使用${name}.
但如果name為null,freemarker就會報錯。如果需要判斷物件是否為空:
<#if name??> …… </#if>
當然也可以透過設定預設值${name!''}來避免物件為空的錯誤。如果name為空,就以預設值(「!」後的字元)顯示。
物件user,name為user的屬性的情況,user,name都有可能為空,那麼可以寫成${(user.name)!''},表示user或name為null,都顯示為空。
判斷為空
<#if (user.name)??> …… </#if>
方法二:
對於null,或miss value,freemarker會報錯
!:default value operator,語法結構為:unsafe_expr!default_expr,例如 ${mouse!"No mouse."} 當mouse不存在時,傳回default value;
(product.color)!"red" 這種方式,能夠處理product或color為miss value的情況;
而product.color!"red"只會處理color為miss value的情況
??: Missing value test operator ,測試是否為missing value
unsafe_expr?? :product.color??只會測試color是否為null
(unsafe_expr)??:(product.color)??將測試product和color是否存在null
?exists:舊版的用法
例如:
<#if mouse??> Mouse found <#else> No mouse found </#if> Creating mouse... <#assign mouse = "Jerry"> <#if mouse??> Mouse found <#else> No mouse found </#if>
以上透過兩種方法介紹了freemarker判斷物件是否為空的方法,希望大家喜歡。