太簡單,沒有保存示例工程web
方式1:spring
啓動,測試結果:瀏覽器
Value表示捕捉那些異常,是一個異常組,若是有多個異常,能夠用{}括起來。建議都用exception,而後用instenceof判斷,或者自定義一個異常,全部controller都拋出這個異常,而後直接捕獲該自定義異常。springboot
方式2:服務器
其餘不變,把exceptionHandler刪掉,或者註釋掉。在Testcontroller中添加以上exceptionHandler方法(能夠把該方法放進一個父類中,讓全部須要捕獲異常的子類去繼承,因爲子類添加了Controller註解,因此若是寫成父類的話,父類能夠不用加@Controller註解,加了也不會報錯)。mvc
啓動,執行結果:app
這個時候,即便ExceptionHandler沒有註釋掉,也會返回這個,繼承的優先級應該要高些。webapp
總結:兩種方式都使用了@ExceptionHandler註解,一種是使用繼承的方式,優先級高,父類不須要任何註解。第二種是全局,須要在自定義全局異常處理類上加註解@ControllerAdvice。看第二種方法返回的code並非服務器的code,只要請求成功了,服務器狀態碼都是200(已用postman驗證),這裏的400僅僅是咱們返回的一條數據而已。註解@ResponseStatus也沒有起做用。jsp
示例工程:springboot-jspide
首先添加依賴:
新建文件夾src/main/webapp,webapp必定要放在src/main下面。
第一種(不推薦):
直接返回一張頁面:
第二種:
application.properties配置(至關於springMVC的前綴後綴的那種配置):
Controller:
第三種:
直接返回頁面路徑(註釋掉先後綴的配置)
項目能運行:可是打成jar以後訪問不到jsp了,此問題還未解決。
我的認爲,jsp和使用模板的效果差很少,頁面輸出流程也同樣,都是從服務器端渲染,而後輸出到瀏覽器。
示例工程:springboot_validate
校驗和springmvc同樣。
不過這裏若是要配置屬性文件的話,mvc是配置的xml文件:以下
可是在springboot中這個配置要換成@Bean的方式配置。
這個配置裏面配置了默認編碼方式爲UTF-8。
固然也能夠像xml裏面同樣配置fileEncodings,可是這個配置是properties屬性,咱們不能像xml同樣直接傳遞一個utf-8的字符串給他。
看圖,能夠知道咱們設置了p.put(key,value),其中key爲setBasename函數的參數,也就是咱們制定的配置文件的名字,這是由於源碼在取的時候是使用的filename爲key來取的。而這個filename必須跟setNasename時候傳入的值如出一轍。這種方式能夠指定每個資源文件的分別用什麼編碼去讀取,若是沒設置就用默認編碼(defaltEncoding)。
這個編碼不能控制spring讀取application.properties文件的編碼,也就是所咱們這個文件的編碼是utf-8讀取的,可是spring本身讀取application.properties資源文件的時候指定編碼方式還得從新spring.messages.encoding=UTF-8使用指定。
application.properties: app.name.null
validateSource.properties: name.null
這個讀取跟spring讀取是兩個東西,能夠看出來咱們讀取的是validateSource.application文件和spring讀取的application.ptoperties,而spring讀取的app.name.null的值,
而校驗的時候輸出的{name.null}是正常的:
至於這個配置文件寫錯誤緣由的,能夠直接使用unicode編碼,idea也支持,並且springboot支持得也很好。
over~~~