1. 程式人生 > >freemarker中的null異常處理以及!與??的使用

freemarker中的null異常處理以及!與??的使用

如工程包含:

在user中我們有個角色,那麼我們可以通過${user.role.rolename}獲取當前使用者的角色名稱

問題來了當role沒有賦值的時候,在jsp中${}表示式會直接忽略不顯示,而freemarker會報異常,還是一大堆,freemarker就需要您手動去處理

如:

這的role是null因此報錯了,而在freemarker中報的異常,排錯還挺難的,一大頓,這裡就需要我們手動去處理null,這裡就要用到!

此刻的效果就跟jsp中的${}el表示式一樣了,如果為空就不顯示了,當在!後進行說明如:獲取當前使用者的角色:${user.role!"當前使用者沒有角色"}如果為空預設值就是後面的值

而當您寫成這樣的時候:<br/>獲取當前使用者的角色:${user.role.rolename!}  而role任然沒值的時候依然會報錯,而正確的方式<br/>獲取當前使用者的角色:${(user.role.rolename)!}

?? 用於判斷是否為空


<#if user.role??>
 當前使用者沒有許可權角色
 <#else>
 當前使用者有許可權角色
</#if>


${user.role???string}這裡將結果以字串的形式輸出:true 或者false

${user.role???string("YES","NO")} 這判定使用者許可權角色為空