当前位置: 首页 > 面试题库 >

使用Java配置在Spring中发生404错误重定向

司徒隐水
2023-03-14
问题内容

如你所知,在XML中,配置方式如下:

<error-page>
    <error-code>404</error-code>
    <location>/my-custom-page-not-found.html</location>
</error-page>

但是我还没有找到在Java配置中做到这一点的方法。我尝试的第一种方法是:

@RequestMapping(value = "/**")
public String Error(){
    return "error";
}

它似乎有效,但是在检索资源方面存在冲突。

有办法吗?


问题答案:

在Spring Framework中,有许多处理异常(尤其是404错误)的方法.

首先,你仍然可以error-page在web.xml中使用标签,并自定义错误页面。这是一个例子。
其次,可以@ExceptionHandler对所有控制器使用一个,如下所示:

@ControllerAdvice
public class ControllerAdvisor {

     @ExceptionHandler(NoHandlerFoundException.class)
     public String handle(Exception ex) {

        return "404";//this is view name
    }
}

为此,请将web.xml中的throwExceptionIfNoHandlerFound属性设置为true DispatcherServlet

<init-param>
    <param-name>throwExceptionIfNoHandlerFound</param-name>
    <param-value>true</param-value>
</init-param>

你还可以将一些对象传递到错误视图



 类似资料:
  • 试图在Web应用程序中提供自定义404错误页面,据我所知,该应用程序使用Java配置(因此没有web.xml)。 我们有以下版本的相关库:Spring("5.1.2. RELEASE")、sping-Security("5.1.1. RELEASE")。 我在StackOverflow中检查了这里的不同方法。请不要建议web.xml、Thymeleaf或Spring Boot的结果。这不适用。 其

  • 我将spring boot security用作restful服务的ACL。安全适配器如下所示 userdetailservice的快照 我不确定是哪个部分导致了重定向。

  • 本文向大家介绍在Tomcat中配置404自定义错误页面详解,包括了在Tomcat中配置404自定义错误页面详解的使用技巧和注意事项,需要的朋友参考一下 一直使用tomcat,今天想到一个问题,自定义404错误页面, 为了获得很好的用户感受,是不应当向用户暴露404这样的页面的, 问题的出发点是我在Struts2中定义错误页面, 在Struts2中是这样定义的: 这就是说在访问action是.如果没

  • 问题内容: 我想配置我的Spring Boot应用程序以将任何404未找到的请求重定向到我的单页应用程序。 例如,如果我正在呼叫不存在的呼叫,则应将其重定向到。 问题是我只有一个页面react应用程序,它在根路径下运行。因此,spring应该重定向到,然后转发到(以保持路由)。 问题答案: 这应该可以解决问题:为404添加一个错误页面,该页面路由到,然后将其转发到您的SPA(假设该条目位于):

  • 我是servlet编程的新手。 下面是我的示例servlet代码 sample.java 我的问题 当我右键单击我的项目,然后单击时,我选择了服务器,它要求我选择一个服务器,然后我选择要运行的服务器。在eclipse窗口中,将打开一个浏览器窗口,其地址URL为http://localhost:8080/sample/ 当我单击时,会出现如下错误, HTTP状态404-/示例/欢迎 留言/示例/欢迎

  • 我为重定向创建了一个简单的@Controller: 描述符是: MVC-配置在spring-mvc.xml是: webapp结构见附件: 当我运行tomcat时,它会在url上重定向我:http://localhost:8080/test/access_denied. 但是有404错误。