freemarker空值處理

2021-07-26 06:33:58 字數 917 閱讀 5012

二、空值處理

$如果empty標籤沒有在servlet中新增key或者值為null,會報錯 empty value expression newtag is undefined。

有人說這是個好的控制錯誤的機制,但本人不這麼認為,因為空值太常見了,誰知道什麼時候裡面就成空值了?每個變數理論上都有可能。

難道每個變數都要加入乙個判斷?就像struts中醜陋的標籤?既然是模板引擎,就要靈活,何必來那麼多限制?

還好,freemarker至少提供了解決辦法,否則我只好選擇其它引擎了。

freemarker中空值的多種處理方法:

1.按照freemarker的規範,老老實實的判斷是否有空值,有空值怎麼處理。這在某種時候是有用的。格式:$

比如值為空時,你可以給出乙個友好的說明,但是很多的變數都要這麼說明,未免太麻煩了。

2.<#escape x as x!"">可以對所有的變數進行空值處理,這裡是全部替換為空字串。當然也可以替換為其它字串。

如果其中某些變數不需要這種替換,可以加入<#noescape>標籤。

3.屬性配置方法:

配置classic_compatible=true可以滿足一般需要。預設情況變數為null則替換為空字串,如果需要自定義,寫上$的形式即可

a.通過configuration設定。configuration cfg = new configuration(); cfg.setclassiccompatible(true);//設定屬性

b.通過eviroment設定。

environment env = template.createprocessingenvironment(root, out);

env.setclassiccompatible(true);

c.通過ftl設定:在ftl前加入,

d.通過spring配置檔案設定

空值NULL處理

1.空值 null 處理 查詢籍貫為null同學 如果判斷乙個欄位的的值是不是null,需要使用is關鍵字,不能使用 select from tbstudent where stuaddress isnull 查詢籍貫不是null的所有同學 select from tbstudent where s...

處理Null(空)值

如果將null設定給物件的屬性,程式會報錯。例如 如果myblog.settitle null 程式會報錯。如果引數傳了乙個空值,那麼jdbc type對於所有的jdbc允許為空的列來說是必須指定的。解決方法 在引數中指定jdbctype屬性,這個屬性只在insert,update,delete的時...

laytpl空值處理

laytpl 模板語法 輸出乙個普通字段,不轉義html 官方的說明 但d.field 為空時會顯示null 暫時沒遇到過 模板中當giftname為空是 頁面上會顯示 null 字串 方式一 可以在模板中直接使用三目表示式來判斷字串是否為空。當receivertime不為空時才對日期時間進行格式化...