我正在制作一个处理程序,当用户尝试访问不存在的 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.";
}
最佳答案
我想你可以试试这个,至少它对我有用:
- 在
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, ...) {
关于java - Spring boot - 如何使用异常处理程序处理页面未找到异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52927910/