2013-03-15 87 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方法的方法参数和返回值非常灵活。