猿问

Spring boot - 如何使用异常处理程序处理页面未找到异常

我正在制作一个处理程序,其中当用户尝试访问不存在的 url 时,我应该能够将用户重定向到登录页面或自定义错误页面,我正在使用异常处理程序来捕获错误,但问题是它不会转到处理程序,而是只给我一个白标错误页面..


这是代码:


@ExceptionHandler(value = ResourceNotFoundException.class)

    public String exception(ResourceNotFoundException e, HttpServletRequest request, RedirectAttributes redirectAttributes) {

        long now = new Date().getTime();

        long lastAccessed = request.getSession().getLastAccessedTime();

        boolean isNotLoggedIn = (now - lastAccessed) <= 0L;


        if (isNotLoggedIn) {

            return "forward:/login";

        }


        return "forward:/access-forbidden?errorMessage=Page Not found.";

    }


梵蒂冈之花
浏览 132回答 2
2回答

森林海

我想你可以试试这个,至少它对我有用:在 中添加这两个属性application.properties:spring.mvc.throw-exception-if-no-handler-found=truespring.resources.add-mappings=false将异常类型从 更改ResourceNotFoundException为NoHandlerFoundException@ExceptionHandler(value = NoHandlerFoundException.class)public String exception(NoHandlerFoundException e, ...) {

慕婉清6462132

确保在处理这些异常的类中包含@ControllerAdvice注释和扩展ResponseEntityExceptionHandler。
随时随地看视频慕课网APP

相关分类

Java
我要回答