java - Spring MVC - 使用 @ExceptionHandler 处理异常不会呈现新 View

标签 java model-view-controller spring exception view

我似乎遇到了 Spring 的限制 - 我有一个简单的情况需要处理 - 我正在模拟服务方法的异常:

@RequestMapping( method = RequestMethod.POST )
public String register( @RequestParam( "mail" ) String mail ){
    throw new IllegalStateException();
}

并尝试通过以下方式处理新请求:

@RequestMapping( value = "/exception_location" )
@ExceptionHandler( IllegalStateException.class )
public String handleException( IllegalStateException ex ){
    return "exception_view";
}

我的 web.xml:

<error-page>
    <exception-type>java.lang.IllegalStateException</exception-type>
    <location>/exception_location</location>
</error-page>

发生的情况是,handleException 确实被触发,但异常 View 不会在客户端上呈现。 Spring 配置是否正确,或者 web.xml 中的条目不需要?我是否遗漏了一些可能导致处理程序没有被调用的原因? 如有任何反馈,我们将不胜感激。 谢谢。

最佳答案

我发现了问题 - 抛出异常的方法需要与处理程序方法位于同一 Controller 中。我将这两种方法移到同一个 Controller 中,一切正常。

关于java - Spring MVC - 使用 @ExceptionHandler 处理异常不会呈现新 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5465436/

相关文章:

java - @Primary JpaRepository 不用于@Autowired

java - 寻找虚无的东西

java - ZK @listen注解

java - Spring MVC Controller 方法调用 GET 但不调用 POST

c# - 对象不支持属性或方法 'kendoDatePicker'

java - 添加一个方面来捕获异常并返回 null

java - 默认情况下如何拒绝对所有 URL 的访问?

java - 为什么 UTF-8 编码在简单的 Java 项目中可以工作,但在 Android 中却不起作用?

java - com.zaxxer.hikari.pool.PoolInitializationException : Exception during pool initialization

java - 如何在没有java utils的情况下比较两个字符串数组