java - Spring mvc - 如何将所有错误的请求映射映射到单个方法

标签 java spring spring-mvc

我正在使用一个 spring(版本 3.2.5)注解驱动的 mvc 应用程序,基本上我需要能够捕捉到单个方法的任何错误 url,然后显示一条错误消息。例如,如果我正确的 url www.url.valid/login 映射到 Controller ,如果用户错误地插入 loginw 或任何无效的 url,它应该映射到默认 Controller .

我试过以下方法:

package com.controller;

import static com.mns.utils.Constants.REGISTER_FAIL;

import javax.servlet.http.HttpServletRequest;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class DefaultSpringController {

      @RequestMapping
      public String forwardRequest(final HttpServletRequest request) {
         return "redirect:/" + REGISTER_FAIL;
      }

}

我的应用上下文如下:

    <!-- Default to DefaultSpringController -->
     <bean id="defaultSpringController"  class="com.controller.DefaultSpringController">
     </bean>

  <bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping">
    <property name="defaultHandler" ref="defaultSpringController"/>
  </bean

但不断出现以下错误:

nested exception is java.lang.ClassNotFoundException: com.controller.DefaultSpringController

我不确定我在这里遗漏了什么, Controller 在正确的包中。

知道如何实现吗?

提前致谢

最佳答案

看起来,您想要一个全局页面未找到处理程序。

@ControllerAdvice
public class GlobalExceptionContoller {

    @ExceptionHandler(NoHandlerFoundException.class)
    public String handleError404(HttpServletRequest request, Exception e) {
        return "pageNotFoundViewNameGoesHere";
    }

}

关于java - Spring mvc - 如何将所有错误的请求映射映射到单个方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40504501/

相关文章:

java - 并发环境下的Ehcache ReentrantReadWriteLock

java泛型 - 参数不能应用于方法

java - 为子实体生成的更新 sql 在一对多关系中不正确

java - 调用 this(arguments) 之前构造函数链接并准备参数

java - Spring Boot - 无法使用 thymeleaf 邮件模板添加内联图像

java - Spring MVC 中是否可以区分具有相同 URL 的 2 个 POST 方法?

java - 将 IP 地址存储在 UserDetails 实例中

java - 如何使用免费软件对Java Web应用程序进行连续部署

java - 在 Java 中查找笛卡尔积

Java 8 Stream 从 map 中提取数据