2013-03-15 85 views
0

假設我有一個控制器:配置錯誤頁面

@Controller 

public class SomeController { 

    @RequestMapping(value = "{id}/object.do") 
    public String showObject(@PathVariable("id") Integer id, 
          HttpServletRequest request) { 
      //do smth 
      return "somePage"; 
     } 
} 

當「ID」是不是一個數字,但字符串如「AAA/object.do」雄貓告訴我一個錯誤 - 「客戶端發送的請求在語法上不正確。「

有沒有辦法配置一個錯誤頁面,只有當「ID」路徑變量具有不正確的類型時纔會顯示?

回答

1

您可以@ExceptionHandler處理這對於此特定錯誤(我懷疑這是TypeMismatchException

@ExceptionHandler(TypeMismatchException.class) 
public ModelAndView handleTypeMismatchException(TypeMismatchException ex) { 
    //TODO log 
    // Return something reasonable to the end user. 
    ... 
} 

請注意,@ExceptionHandler基本上具有幾乎相同的功能,像往常一樣處理:

與用@RequestMapping註釋標註的標準控制器方法很像,@ExceptionHandler方法的方法參數和返回值非常靈活。