freemarker模版異常跳轉錯誤頁實現方法

系統用的freemarker模版,接到領導指示,需要增加友好頁面,在模版出錯時定向跳轉,避免直接在前臺顯示亂碼

本來以爲很簡單的東西,搞了一整天,特此記錄下,紀念我失去的時間。

網上查了很多資料,目前沒有具體的解決方法,我這裏寫的詳細點,給後來者一點指示吧。

原理:freemarker提供了異常捕捉的功能,這個是自帶的,實現一下就行了,如下圖

觸發的入口就是在項目加載freemarker配置的時候指定你自己定義的方法,如下圖

template_exception_handler,這個參數就是指定發生異常時通知哪個類,我這裏是自己定義了個異常,只不過裏面沒有寫東西,如果項目需要的話可以在裏面加東西,比如消息推送,短信推送,郵件推送什麼的,看自己了

當然,你也可以設置template_exception_handler爲rethrow或者ignore,rethrow頁面會顯示異常信息,ignore會忽略異常部分,繼續顯示其餘的內容,比如有個標籤裏面的值是null,你沒有提前判斷,那就會跳過這個標籤,繼續顯示後面的部分,不管填寫什麼後臺都是報錯的,不怕找不到錯誤日誌

然後重點來了,跳轉到我指定的異常頁面,我這裏是拋出自定義異常,然後在web.xml配置捕獲異常跳轉到對應的連接,如圖

然後再跳轉到指定的頁面

完事收工。

ps:有個小坑,跳轉錯誤提示頁的時候不知道什麼原因,直接跳轉頁面不好使,頁面會出現在模版異常的地方,想了半天沒弄好,只能做了2次跳轉,算是取巧了,但是問題還沒有解決,誰知道怎麼解決可以告訴我,非常感謝。上個圖

 

如果轉發請帶上博客地址,謝謝。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章