91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

SpringMVC基于配置的異常處理器怎么用

發布時間:2022-05-30 10:03:35 來源:億速云 閱讀:163 作者:iii 欄目:開發技術

這篇文章主要介紹了SpringMVC基于配置的異常處理器怎么用的相關知識,內容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇SpringMVC基于配置的異常處理器怎么用文章都會有所收獲,下面我們一起來看看吧。

    一、基于配置的異常處理

    SpringMVC 提供了一個處理控制器方法執行過程中所出現的異常的接口:HandlerExceptionResolver。

    HandlerExceptionResolver接口的實現類有:

    DefaultHandlerExceptionResolver,這個是默認使用的處理器,之前遇到的一些異常,其實springMVC 都已經給我們處理過了。

    SimpleMappingExceptionResolver,這個可以讓我們自定義異常處理。當出現指定的異常,可以設置返回新的視圖。

    使用SimpleMappingExceptionResolver,在springMVC的配置文件中:

    <!--配置異常處理-->
      <bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
          <property name="exceptionMappings">
              <props>
                  <prop key="java.lang.ArithmeticException">error</prop>
              </props>
          </property>
      </bean>

    示例里使用的一個處理運算異常的類ArithmeticException,里面的值 error 表示異常后跳轉的視圖。

    對應的,新建一個error.html頁:

    <!DOCTYPE html>
    <html lang="en" xmlns:th="http://www.thymeleaf.org">
    <head>
        <meta charset="UTF-8">
        <title>error</title>
    </head>
    <body>
    出現錯誤
    </body>
    </html>

    接下來,造一個異常:

    @RequestMapping("/testExceptionHandler")
      public String testExceptionHandler() {
          System.out.println(1/0);
          return "success";
      }

    正常情況下這個處理器會跳轉到 success 頁,但是里面有個 1/0的異常,所以會按照配置跳轉到 error 頁。

    重新部署,測試一下,訪問http://localhost:8080/springmvc/testExceptionHandler:

    SpringMVC基于配置的異常處理器怎么用

    成功跳轉到 error 頁。

    儲存異常信息

    此外,還可以繼續屬性exceptionAttribute,設置一個key用來存放異常信息,默認存在當前的請求域中:

    <!--配置異常處理-->
      <bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
          <property name="exceptionMappings">
              <props>
                  <prop key="java.lang.ArithmeticException">error</prop>
              </props>
          </property>
          <!--exceptionAttribute屬性設置一個屬性名,將出現的異常信息在請求域中進行共享-->
          <property name="exceptionAttribute" value="ex"></property>
      </bean>

    那么在 error 頁中就可以使用到ex來獲取異常信息了。

    <!DOCTYPE html>
    <html lang="en" xmlns:th="http://www.thymeleaf.org">
    <head>
        <meta charset="UTF-8">
        <title>error</title>
    </head>
    <body>
    出現錯誤
    <p th:text="${ex}"></p>
    </body>
    </html>

    重新部署,刷新下頁面:

    SpringMVC基于配置的異常處理器怎么用

    二、基于注解的異常處理

    springmvc 同樣也提供了一套注解,通過注解方式也可以實現上述的異常處理。

    新建一個控制器 ExceptionController:

    //@ControllerAdvice將當前類標識為異常處理的組件
    @ControllerAdvice
    public class ExceptionController {
        //@ExceptionHandler 用于設置所標識方法處理的異常
        @ExceptionHandler(value = {ArithmeticException.class, NullPointerException.class})
        public String testException(Exception ex, Model model){
            // ex表示當前請求處理中出現的異常對象,放到請求域中
            model.addAttribute("ex", ex);
            return "error";
        }
    }

    @ControllerAdvice將當前類標識為異常處理的組件。

    ex表示當前請求處理中出現的異常對象,用Model放到請求域中。

    現在注釋掉配置文件里的處理器,重新部署下,刷新http://localhost:8080/springmvc/testExceptionHandler:

    SpringMVC基于配置的異常處理器怎么用

    依然可以。

    關于“SpringMVC基于配置的異常處理器怎么用”這篇文章的內容就介紹到這里,感謝各位的閱讀!相信大家對“SpringMVC基于配置的異常處理器怎么用”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注億速云行業資訊頻道。

    向AI問一下細節

    免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

    AI

    徐汇区| 大丰市| 休宁县| 东乡族自治县| 乌拉特前旗| 新干县| 吐鲁番市| 延津县| 苏州市| 淳化县| 商水县| 寿阳县| 思南县| 肇源县| 湖口县| 那坡县| 皋兰县| 广昌县| 固始县| 枣庄市| 荆门市| 获嘉县| 金湖县| 集贤县| 彭水| 伽师县| 龙里县| 澄城县| 湘潭县| 抚远县| 香河县| 华坪县| 花垣县| 永泰县| 陆良县| 顺平县| 岳阳市| 县级市| 开平市| 贵阳市| 拉萨市|