springmvc跳轉到自定義錯誤頁面的三種方法


本文轉載自:https://blog.csdn.net/qq_37268511/article/details/103486142

 

有時候我們並不想跳轉到系統自定義的錯誤頁面中,那么我們需要自定義頁面並且實現它的跳轉

有三種方法可以實現

方法一:最簡單的實現,也是最快的

在web.xml下配置如下:

<error-page>
     <error-code>404</error-code>
     <location>/WEB-INF/errors/404.jsp</location>
</error-page>

若url匹配不到則會跳轉到404.jsp頁面

 

方法二:也很簡單

@RequestMapping("*")
public String test3(){
    return "404";
}

如果不能精確匹配上url,則返回404.jsp頁面

 

方法三:重寫noHandlerFound方法,實現自定義的DispatcherServlet

web.xml:

<servlet>
      <servlet-name>springmvc</servlet-name>
      <servlet-class>com.exceptionpage.test</servlet-class>
      <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:spring-mvc.xml</param-value>
      </init-param>
    </servlet>
    <servlet-mapping>
     <servlet-name>springmvc</servlet-name>
     <url-pattern>/</url-pattern>
   </servlet-mapping>

 

controller類需要繼承DispatcherServlet,並重寫noHandlerFound方法

@Override
    protected void noHandlerFound(HttpServletRequest request,
                                  HttpServletResponse response) throws Exception {
        System.out.println("successful execute...");
        response.sendRedirect(request.getContextPath() + "/notFound");
    }

    @RequestMapping("/notFound")
    public String test2(){
        System.out.println("successful...");
        return "404";
    }

若沒有匹配上url,則調用noHandlerFound方法,並且重定向到一個新的方法

新的方法中跳轉到404.jsp頁面

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM