为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

梵蒂冈之花 2021-12-01 16:30:22
我正在制作一个处理程序,其中当用户尝试访问不存在的 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.";    }
查看完整描述

2 回答

?
森林海

TA贡献2011条经验 获得超2个赞

我想你可以试试这个,至少它对我有用:


在 中添加这两个属性application.properties:

spring.mvc.throw-exception-if-no-handler-found=true

spring.resources.add-mappings=false

将异常类型从 更改ResourceNotFoundException为NoHandlerFoundException

@ExceptionHandler(value = NoHandlerFoundException.class)

public String exception(NoHandlerFoundException e, ...) {


查看完整回答
反对 回复 2021-12-01
?
慕婉清6462132

TA贡献1804条经验 获得超2个赞

确保在处理这些异常的类中包含@ControllerAdvice注释和扩展ResponseEntityExceptionHandler


查看完整回答
反对 回复 2021-12-01
  • 2 回答
  • 0 关注
  • 131 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信