是否可以处理特定url模式的404状态?我想显示登录页面,如果有人去'localhost:8080/login/other'但没有请求映射'login/other'。Controller类如下所示:
@RequestMapping("/login")
@Controller
public class UserManagerController {
@RequestMapping({"/", ""})
public String getLoginPage() {
return "login.html";
}
}
我无法添加“/login/**”,因为它与我静态内容匹配,而对js或css的任何请求都与endpoint匹配。HTML示例:
<!DOCTYPE html>
<html lang="en">
<head>
...
</head>
...
<script src="/login/some.js"</script>
</html>
您可以使用如下内容:
import java.util.Objects;
import javax.servlet.http.HttpServletRequest;
import org.springframework.boot.web.servlet.error.ErrorController;
import org.springframework.http.HttpStatus;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class GlobalErrorController implements ErrorController {
@RequestMapping("/error")
public String handleError(HttpServletRequest request, Model model) {
Integer statusCode = (Integer) request.getAttribute("javax.servlet.error.status_code");
Exception exception = (Exception) request.getAttribute("javax.servlet.error.exception");
model.addAttribute("errorMessage", exception);
model.addAttribute("statusCode", statusCode);
if (Objects.nonNull(statusCode)
&& HttpStatus.NOT_FOUND.value() == statusCode) {
return "resource-not-found";// in your case you should use: return "redirect:/login";
}
return "exception";
}
@Override
public String getErrorPath() {
return "/error";
}
}
如果用户将打开无效url(例如localhost:8080/invalid-page),则该代码将打开“resource-not-found”页面
对于您的情况,可以使用'handle error()'方法返回“redirect:/login”;如果statusCode是404
问题内容: 这是一种常见的模式,我看到与异常关联的错误代码存储为静态最终整数。当创建要抛出的异常时,将使用这些代码之一以及错误消息来构造该异常。这导致该方法要抓住它,必须先查看代码,然后决定采取的措施。 替代方法似乎是-为每个异常错误情况声明一个类(尽管相关的异常会从通用基类中删除) 有中间立场吗?推荐的方法是什么? 问题答案: 这是一个很好的问题。我相信绝对有中间立场。 我认为错误代码对于显示质
前言 在 gRPC 的新版本(1.0.0-pre2)中,为了方便传递 debug 信息,在 StatusException 和 StatusRuntimeException 中增加了名为 Trailer 的 Metadata。 注: 在此之前,Status(和Status映射的StatusException)只有两个字段可以传递信息:1. status code 2. status decript
我有一个ControllerAdvice类,它处理一组异常。我们还有其他一些例外情况,这些例外情况用注释进行了注释。为了结合这两种方法,我们使用博客文章中描述的技术:http://spring.io/blog/2013/11/01/exception-handling-in-spring-mvc,即在ControllerAdvice中,我们以以下方式处理一般异常: 它就像一个符咒,但是,使用此技术
本文向大家介绍c# 基于任务的异步编程模式(TAP)的异常处理,包括了c# 基于任务的异步编程模式(TAP)的异常处理的使用技巧和注意事项,需要的朋友参考一下 在前面讲到了《基于任务的异步编程模式(TAP)》,但是如果调用异步方法,没有等待,那么调用异步方法的线程中使用传统的try/catch块是不能捕获到异步方法中的异常。因为在异步方法执行出现异常之前,已经执行完毕。 1、没有等待的调用异步方法
我在应用程序中访问房间DAOs时遇到问题。即使我通过rxjava在后台线程中执行操作,也会出现此错误:
我试图添加一个新的块到游戏中,每边都有不同的纹理,它会抛出一个错误异常加载模型的变体。 我有其他具有类似命名约定的块,这些块工作正常,但在所有方面都具有相同的纹理。 游戏中的方块正确显示了“燃烧”和“朝向”状态,但没有显示纹理。