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判斷對象是否為空的方法,希望大家喜歡。
新聞熱點
疑難解答