freemarker 異常處理

SSH2處理方案:

freemarker文件如果出錯,網站的前臺頁面會報出很明顯的錯誤-焦黃的背景,血紅的文字,很不利于用戶體驗的。如何修改這個問題呢?
首先需要在struts.xml配置文件里添加下面一行代碼:

接著新建MyFreemarkerManager類,如下所示:

?

SpringMVC-Freemarker異常配置

?

1、spring mvc的異常配置

? ? spring mvc 提供了SimpleMappingExceptionResolver來處理異常,這里的只是由web 請求,經由controller引發的異常,無法處理freemarker的異常

?

2、freemarker自定義異常

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
/**
?*?freemarker頁面上的異常控制
?*?在webmvc-config.xml里面的freemarkerSettings里頭配置
?*?@author?scipio
?*?@created?2014-02-01
?*/
public?class?FreemarkerExceptionHandler?implements?TemplateExceptionHandler?{
????private?static?final?Logger?log?=?LoggerFactory
????????????.getLogger(FreemarkerExceptionHandler.class);
????public?void?handleTemplateException(TemplateException?te,?Environment?env,
????????????????????????????????????????Writer?out)?throws?TemplateException?{
????????????log.warn("[Freemarker?Error:?"?+?te.getMessage()?+?"]");
????????????throw?new?ViewException("freemarker?error",te);
????}
}

?

?

? 這里重新包裝異常拋出(這種方式要求比較嚴格,因為freemarker對個別的錯誤,比如某個變量沒有定義,可以忽略,只是后臺拋異常,然后整個頁面還是會渲染出來)

?

3、配置HtmlFreeMarkerConfigurer

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
?<bean?id="freemarkerConfig"?class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">
????????<property?name="templateLoaderPath"?value="/WEB-INF/views/"/>
????????<property?name="freemarkerSettings">
????????????<props>
????????????????<prop?key="template_update_delay">0</prop>
????????????????<prop?key="default_encoding">UTF-8</prop>
????????????????<prop?key="locale">zh_CN</prop>
????????????????<prop?key="url_escaping_charset">UTF-8</prop>
????????????????<prop?key="whitespace_stripping">true</prop>
????????????????<prop?key="number_format">#</prop>
????????????????<!--?配置自定義的freemarker異常處理-->
????????????????<prop?key?=?"template_exception_handler">com.persia.exception.FreemarkerExceptionHandler</prop>
????????????</props>
????????</property>
????</bean>

?

?

4、針對該異常,配置web.xml

?

1
2
3
4
5
<!--配置freemarker異常-->
????<error-page>
????????<exception-type>com.persia.exception.ViewException</exception-type>
????????<location>/WEB-INF/views/error/viewException.ftl</location>
????</error-page>

?

轉載于:https://www.cnblogs.com/cz-xjw/p/4987232.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/286613.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/286613.shtml
英文地址,請注明出處:http://en.pswp.cn/news/286613.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

ArcGIS10.8按屬性選擇中根據關鍵字like模糊查詢方法總結

在實際工作中,通常需要按照某一個或某幾個關鍵字進行模糊查詢,已到達快速、準確、高效查詢的目的。在ArcGIS中是通過SQL語句,利用關鍵字like來實現的。例如我們可以借助like快速查詢滿足以某一個關鍵字開頭,以某一個關鍵字結尾,或者包含某一個關鍵字的結果。 在ArcGIS中,…

2021年復盤總結發現了C站博主缺少的賺錢之路

一、 我2021年的六大Flag 其實最開始我是不打算年終總結的&#xff0c;因為2021年我的十大Flag都沒有完成&#xff0c;我說出來可能你會嘲笑我&#xff0c;所以我打算還是說出來吧。 這六大Flag如下&#xff1a; C站百萬粉百篇實戰文其他自媒體平臺十萬粉公眾號一萬粉財務自…

五大微信小程序開發IDE深度評測

微信小程序已經內測有一段時間了&#xff0c;筆者本著好奇加學習的心態寫了幾個小demo&#xff0c;雖然在MINA框架上并沒有遇到太多的坑&#xff0c;但官方開發工具實在不敢恭維。 api提示不全&#xff0c;要一個個查api啊&#xff0c;寫代碼超級慢啊 很多必備的快捷鍵都沒有&…

Maui的學習之路(2)--Mac窗體設置

Maui的學習之路今天是我開啟Maui學習之路的第二天&#xff0c;我不是很高興又能水一篇文章&#xff0c;我只能說這文章真好水。話不多說&#xff0c;我們進入正題&#xff0c;昨天解決了Windows下TitleBar以及窗體大小的問題&#xff0c;今天同樣的問題&#xff0c;在Mac上又要…

Android之靠譜的Activity從底部向上彈出,finish從頂部向下消失(不黑屏)

1 、需求 要求Activity從底部向上彈出,finish從頂部向下消失(不黑屏) 2、解決辦法 準備3個動畫xml文件 app_bottom_in.xml <?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/andro…

ArcGIS10.8中如何獲取線狀、面狀數據的折點,并計算折點坐標?

如下圖所示為面狀要素,ArcGIS10.8中如何獲取線狀和面狀數據的折點(起點、終點、中點、端點),并計算折點的坐標(X,Y,Z,M)? 下圖所示為線狀(Polyline)和面狀(Polygon)要素的起點、終點和折點的示意圖。

Linux命令大總結(早期學習時的筆記)

Linux命令大總結 ------------------------------------------------------------------------------------ 開機自啟動命令行模式和圖形模式&#xff1a; vi /etc/inittab 改3為命令行模式 改5為圖形模式 開關機命令&#xff1a; 關機 init 0 shtudown -h now 重啟…

[轉]Cordova + Ionic in Visual Studio - 101 Tutorial [Part I]

本文轉自&#xff1a;http://binarylies.ghost.io/cordova-ionic-in-visual-studio/ Hi everyone, I thought about lending a hand to all the people that are, as I have been recently, exploring Cordova and all its features for the first time. For the ones still tr…

【轉】學會這13個原則寫UI界面文案,用戶才能秒懂

原文網址&#xff1a;http://www.niaogebiji.com/article-12011-1.html 摘要: 首先&#xff0c;在寫UI文案之前&#xff0c;為了理清思路&#xff0c;要先搞清楚三個問題&#xff1a;我&#xff08;設計師&#xff09;想讓用戶做什么&#xff1f; – 我寫文案的目的為什么要讓用…

【前端就業課 第一階段】HTML5 零基礎到實戰(一)基礎代碼結構詳解

注意&#xff1a;手機&#xff08;APP&#xff09;打開&#xff0c;內容顯示更佳&#xff0c;不會的私聊博主即可 想要拿代碼或加入學習計劃&#xff08;** 博主會監督你并且教你寫文章 **&#xff09;的拉到最下面&#xff08;PC端Web打開&#xff09;加博主即可&#xff0c;目…

【框架篇】mvc、mvp、mvvm使用關系總結

MVC MVC全名是Model View Controller&#xff0c;是模型(model)&#xff0d;視圖(view)&#xff0d;控制器(controller)的縮寫&#xff0c;一種軟件設計典范&#xff0c;用一種業務邏輯、數據、界面顯示分離的方法組織代碼&#xff0c;將業務邏輯聚集到一個部件里面&#xff0c…

Blazor University (26)路由 —— 通過代碼導航

原文鏈接&#xff1a;https://blazor-university.com/routing/navigating-our-app-via-code/通過代碼導航源代碼[1]從 Blazor 訪問瀏覽器導航是通過 NavigationManager 服務提供的。這可以使用 razor 文件中的 inject 或 CS 文件中的 [Inject] 屬性注入到 Blazor 組件中。Navig…

Android之使用自定義華為掃描SDK掃描二維碼和識別本地圖片

1、需求 更具UI的設計實現掃描二維碼和識別本地圖片二維碼功能。 zxing掃描二維碼還可以,但是識別本地圖片二維碼功能效果太差,非常不理想,看了看多github很多zxing擴展的開源項目,識別本地圖片二維碼功能效果不樂觀,有些甚至還有裁剪本地圖片,還是不能識別,果斷放棄zb…

Matlab R2016b簡體中文版安裝教程(附Matlab R2016b百度網盤下載地址)

下載的Matlab R2016b軟件安裝包(文末附有下載地址)目錄如下所示: 安裝過程: 1. 安裝主程序R2016b_win64_dvd1.iso和R2016b_win64_dvd2.iso 由于目前大多數及其都是Win8或10系統,所以選中R2016b_win64_dvd1.iso,右鍵→Windows資源管理器打開。Win7系統可以安裝好壓軟件之后…

深度學習String、StringBuffer、StringBuilder

相信String這個類是Java中使用得最頻繁的類之一&#xff0c;并且又是各大公司面試喜歡問到的地方&#xff0c;今天就來和大家一起學習一下String、StringBuilder和StringBuffer這幾個類&#xff0c;分析它們的異同點以及了解各個類適用的場景。下面是本文的目錄大綱&#xff1a…

Leetcode之打印鏈接的倒數第K個節點

1 問題 打印鏈表倒數第K個節點值。 2 代碼實現 #include<stdio.h>//定義一個Node結構體,里面包含了value值和保存了下一個Node的指針(地址) typedef struct Node {int value;Node *next; } Node;//打印鏈表所有的值,循環遍歷一次,因為鏈表節點的最后一個節點肯定是…

MySQL5.5多實例編譯安裝——mysqld_multi

一、MySQL多實例簡介 MySQL多實例&#xff0c;簡單地說&#xff0c;就是在一臺服務器上同時開啟多個不同的服務端口&#xff08;如&#xff1a;3306、3307&#xff09;&#xff0c;同時運行多個MySQL服務進程&#xff0c;這些服務進程通過不同的socket監聽來自不同的端口來提供…

【前端就業課 第一階段】HTML5 零基礎到實戰(二)超鏈接

注意&#xff1a;手機&#xff08;APP&#xff09;打開&#xff0c;內容顯示更佳&#xff0c;不會的私聊博主即可 想要拿代碼或加入學習計劃&#xff08;** 博主會監督你并且教你寫文章 **&#xff09;的拉到最下面&#xff08;PC端Web打開&#xff09;加博主即可&#xff0c;目…

架構,框架,模式,模塊、組件、插件的含義和區別

架構、框架、模式、模塊、組件、插件、控件、中間件的含義和區別。經常看到這些概念&#xff0c;但是有些含糊&#xff0c;花點兒功夫整理一下&#xff0c;結果還是有些地方理解的不透徹&#xff0c;先將整理的內容寫下來&#xff0c;以供交流。左側英文欄中有些單詞被分成了兩…

C語言,C#語言求100-999內的水仙花數源程序

水仙花數&#xff08;Narcissistic number&#xff09;也被稱為超完全數字不變數&#xff08;pluperfect digital invariant, PPDI&#xff09;、自戀數、自冪數、阿姆斯壯數或阿姆斯特朗數&#xff08;Armstrong number&#xff09;&#xff0c;水仙花數是指一個 3 位數&#…