簡體   English   中英

Spring MVC-使用@ExceptionHandler處理異常不會呈現新視圖

[英]Spring MVC - handle exception with @ExceptionHandler doesn't render new 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確實被觸發,但是異常視圖未在客戶端上呈現。 Spring配置是否正常,還是不需要web.xml中的條目? 我是否缺少某些可能導致處理程序不被調用的原因? 任何反饋表示贊賞。 謝謝。

我發現了問題-引發異常的方法必須與處理程序方法位於同一控制器中。 我將兩個方法都移到了同一個控制器中,一切正常。

恩,這對我來說似乎很奇怪。 如果使用Spring的異常處理功能,則不需要web.xml中的條目。 同樣,通常您不混合搭配@RequestMapping和@ExceptionHandler。 簡而言之,您需要做的只是...

@ExceptionHandler( IllegalStateException.class )
public String handleException( IllegalStateException ex ){
    return "exception_view";
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM