freemarker中的null異常處理以及!與??的使用
阿新 • • 發佈:2018-12-24
如工程包含:
在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")} 這判定使用者許可權角色為空