最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SpringBoot?錯誤頁面跳轉(zhuǎn)方式

 更新時間:2022年02月17日 14:55:53   作者:皮皮熙のFans  
這篇文章主要介紹了SpringBoot?錯誤頁面跳轉(zhuǎn)方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

SpringBoot錯誤頁面跳轉(zhuǎn)

SpringBoot實(shí)現(xiàn)MVC 404、500等錯誤時跳轉(zhuǎn)自定義頁面

一、新增配置類

package com.study.demo.config;
import org.springframework.boot.web.server.ErrorPage;
import org.springframework.boot.web.server.ErrorPageRegistrar;
import org.springframework.boot.web.server.ErrorPageRegistry;
import org.springframework.http.HttpStatus;
import org.springframework.stereotype.Component;
/**
?* 錯誤頁面的配置
?*/
@Component
public class ErrorPageConfig implements ErrorPageRegistrar {
? ? @Override
? ? public void registerErrorPages(ErrorPageRegistry registry) {
? ? ? ? ErrorPage error400Page = new ErrorPage(HttpStatus.BAD_REQUEST, "/errorPageController/error_400");
? ? ? ? ErrorPage error401Page = new ErrorPage(HttpStatus.UNAUTHORIZED, "/errorPageController/error_401");
? ? ? ? ErrorPage error404Page = new ErrorPage(HttpStatus.NOT_FOUND, "/errorPageController/error_404");
? ? ? ? ErrorPage error500Page = new ErrorPage(HttpStatus.INTERNAL_SERVER_ERROR, "/errorPageController/error_500");
? ? ? ? registry.addErrorPages(error400Page,error401Page,error404Page,error500Page);
? ? }
}

二、錯誤頁面跳轉(zhuǎn)控制器

package com.study.demo.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
@RequestMapping("/errorPageController")
public class ErrorPageController {
? ? @RequestMapping("/error_{errorCode}")
? ? public String error(@PathVariable int errorCode){
? ? ? ? String responseMsg;
? ? ? ? switch (errorCode) {
? ? ? ? ? ? case 400: responseMsg = "/400.html"; break;
? ? ? ? ? ? case 401: responseMsg = "/401.html"; break;
? ? ? ? ? ? case 404: responseMsg = "/404.html"; break;
? ? ? ? ? ? case 500: responseMsg = "/500.html"; break;
? ? ? ? ? ? default: responseMsg = "/404.html"; break;
? ? ? ? }
? ? ? ? return responseMsg;
? ? }
}

SpringBoot自定義錯誤頁面

一、錯誤頁面

請求出現(xiàn)錯誤時,跳轉(zhuǎn)到自定義的頁面中,比如404,假如沒對錯誤進(jìn)行處理,那么系統(tǒng)默認(rèn)的頁面與項(xiàng)目的頁面會有很大的不搭。

解決:在默認(rèn)的靜態(tài)路徑下,新建error文件,里面放入錯誤頁面,頁面命名為錯誤狀態(tài)碼,如:404.html,也可以命名為4xx.html,但如果兩個文件同時存在,那么會優(yōu)先展示404.html

注:靜態(tài)路徑為

private static final String[] CLASSPATH_RESOURCE_LOCATIONS = new String[]{
"classpath:/META-INF/resources/",
?"classpath:/resources/",?
?"classpath:/static/",?
?"classpath:/public/"
?};
?// 注:還有一個默認(rèn)的根路徑 ? ?"/"

二、處理過程

出現(xiàn)4xx或5xx錯誤時,ErrorPageCustomizer生效,就會來到/error請求,就會被BasicErrorController處理。

//在DefaultErrorViewResolver中有一段代碼
// 處理4xx和5xx的請求
static {
    Map<Series, String> views = new EnumMap(Series.class);
    views.put(Series.CLIENT_ERROR, "4xx");
    views.put(Series.SERVER_ERROR, "5xx");
    SERIES_VIEWS = Collections.unmodifiableMap(views);
}
// 解析,并會跳轉(zhuǎn)到error/錯誤狀態(tài)碼; 頁面中
private ModelAndView resolve(String viewName, Map<String, Object> model) {
    String errorViewName = "error/" + viewName;
    TemplateAvailabilityProvider provider = this.templateAvailabilityProviders.getProvider(errorViewName, this.applicationContext);
    // 對是否有模板引擎做出相應(yīng)的視圖處理
    return provider != null ? new ModelAndView(errorViewName, model) : this.resolveResource(errorViewName, model);
}

以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Spring集成MyBatis框架

    Spring集成MyBatis框架

    本文主要介紹了Spring集成MyBatis的配置和使用,項(xiàng)目基于Maven構(gòu)建,連接Mysql數(shù)據(jù)庫。下面跟著小編一起來看下吧
    2017-02-02
  • lombok @Accessors用法詳解

    lombok @Accessors用法詳解

    這篇文章主要介紹了lombok @Accessors用法詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • 一文搞懂SpringBoot如何利用@Async實(shí)現(xiàn)異步調(diào)用

    一文搞懂SpringBoot如何利用@Async實(shí)現(xiàn)異步調(diào)用

    異步調(diào)用幾乎是處理高并發(fā),解決性能問題常用的手段,如何開啟異步調(diào)用?SpringBoot中提供了非常簡單的方式,就是一個注解@Async。今天我們重新認(rèn)識一下@Async,以及注意事項(xiàng)
    2022-09-09
  • Java NIO深入分析

    Java NIO深入分析

    本篇技術(shù)文章主要對Java新api(New IO)做了詳細(xì)深入的講解,有助于程序?qū)IO有更加深入的理解。
    2017-12-12
  • Kotlin教程之函數(shù)和包的定義和流程控制

    Kotlin教程之函數(shù)和包的定義和流程控制

    這篇文章主要介紹了Kotlin教程之函數(shù)和包的定義和流程控制的相關(guān)資料,需要的朋友可以參考下
    2017-05-05
  • Java簡單實(shí)現(xiàn)約瑟夫環(huán)算法示例

    Java簡單實(shí)現(xiàn)約瑟夫環(huán)算法示例

    這篇文章主要介紹了Java簡單實(shí)現(xiàn)約瑟夫環(huán)算法,簡單描述了約瑟夫環(huán)問題,并結(jié)合實(shí)例形式分析了Java實(shí)現(xiàn)約瑟夫環(huán)的具體操作技巧,需要的朋友可以參考下
    2017-09-09
  • Java?任務(wù)調(diào)度框架?Quartz實(shí)操

    Java?任務(wù)調(diào)度框架?Quartz實(shí)操

    這篇文章主要介紹了Java?任務(wù)調(diào)度框架?Quartz,Quartz是OpenSymphony開源組織在Job?scheduling領(lǐng)域又一個開源項(xiàng)目,完全由Java開發(fā),可以用來執(zhí)行定時任務(wù),類似于java.util.Timer。,下面我們來學(xué)習(xí)一下關(guān)于?Quartz更多的詳細(xì)內(nèi)容,需要的朋友可以參考一下
    2021-12-12
  • Java新手教程之ArrayList的基本使用

    Java新手教程之ArrayList的基本使用

    ArrayList就是傳說中的動態(tài)數(shù)組,用MSDN中的說法,就是Array的復(fù)雜版本,這篇文章主要給大家介紹了關(guān)于Java新手教程之ArrayList基本使用的相關(guān)資料
    2021-06-06
  • 2020最新版idea激活教程(推薦)

    2020最新版idea激活教程(推薦)

    這篇文章主要介紹了2020最新版idea激活教程,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-02-02
  • Java Date類常用示例_動力節(jié)點(diǎn)Java學(xué)院整理

    Java Date類常用示例_動力節(jié)點(diǎn)Java學(xué)院整理

    在JDK1.0中,Date類是唯一的一個代表時間的類,但是由于Date類不便于實(shí)現(xiàn)國際化,所以從JDK1.1版本開始,推薦使用Calendar類進(jìn)行時間和日期處理。這里簡單介紹一下Date類的使用,需要的朋友可以參考下
    2017-05-05

最新評論

北宁市| 德化县| 平顶山市| 金华市| 镇原县| 汝南县| 小金县| 得荣县| 常德市| 玉溪市| 读书| 肥东县| 团风县| 洛浦县| 肃宁县| 滁州市| 商河县| 霍州市| 肥东县| 伊宁市| 临潭县| 措勤县| 嵊泗县| 土默特右旗| 石台县| 海原县| 桑日县| 左贡县| 若尔盖县| 红原县| 宁武县| 肥乡县| 荃湾区| 济南市| 丰都县| 金乡县| 霍林郭勒市| 达日县| 竹溪县| 门头沟区| 德格县|