簡體   English   中英

Java Spring 啟動 Web 應用程序:處理 404 異常

[英]Java Spring Boot Web App: Handling 404 Exception

我正在閱讀 Java Spring 引導教程,並且正在嘗試處理 404 異常。 我有教程中的確切代碼,但由於某種原因它不工作,雖然 403 錯誤工作。 在本教程中,講師處理所有未決異常的方式如下,特別是 defaultErrorHandler()。 但是,這不起作用:

@ControllerAdvice
public class GlobalExceptionHandler {

    @Value("${message.error.exception}")
    private String exceptionMessage;

    @Value("${message.error.duplicate.user}")
    private String duplicateUserMessage;

    @ExceptionHandler(value=Exception.class)
    public ModelAndView defaultErrorHandler(HttpServletRequest req, Exception e) {
        ModelAndView modelAndView = new ModelAndView();
        modelAndView.getModel().put("message", exceptionMessage);
        modelAndView.getModel().put("url", req.getRequestURL());
        modelAndView.getModel().put("exception", e);
        modelAndView.setViewName("app.exception");
        return modelAndView;
    }

    @ExceptionHandler(value=DataIntegrityViolationException.class)
    public ModelAndView duplicateUserHandler(HttpServletRequest req, Exception e) {
        ModelAndView modelAndView = new ModelAndView();
        modelAndView.getModel().put("message", duplicateUserMessage);
        modelAndView.getModel().put("url", req.getRequestURL());
        modelAndView.getModel().put("exception", e);
        modelAndView.setViewName("app.exception");
        return modelAndView;
    }
}

然后,我嘗試添加類似於講師處理 403 錯誤的內容,如下所示,但這也不起作用:

    @RequestMapping("/403")
    ModelAndView accessDenied(ModelAndView modelAndView) {
        System.out.println("We're here");
        modelAndView.getModel().put("message", accessDeniedMessage);
        modelAndView.setViewName("app.message");
        return modelAndView;

    }

    @RequestMapping("/404")
    ModelAndView pageNotFound(ModelAndView modelAndView) {

        modelAndView.getModel().put("message", exceptionMessage);
        modelAndView.setViewName("app.message");
        return modelAndView;

    }

我嘗試通過將 System.out.println("test") 放入每個可疑方法中來進行調試,但都沒有達到。 任何幫助,將不勝感激。 謝謝!

如果您想處理 404 異常以顯示您的自定義頁面而不是可白標錯誤。您可以通過在資源目錄中創建名為 error 的文件夾來實現。在錯誤文件夾中創建 404.html 文件並添加 html 代碼、樣式等。 Now Spring Boot picks your 404.html file and displays to user whenever 404 error occurs.Like this you can also handle any errors just putting filename of error code 501.html,407.html etc

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM