假设我有一个 Controller :
@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”这样的字符串时,Tomcat 向我显示错误 - “客户端发送的请求在语法上不正确。”
有没有办法配置仅当“id”路径变量类型不正确时才显示的错误页面?
最佳答案
您可以使用 @ExceptionHandler 来处理此问题对于这个特定的错误(我怀疑它是 TypeMismatchException )
@ExceptionHandler(TypeMismatchException.class)
public ModelAndView handleTypeMismatchException(TypeMismatchException ex) {
//TODO log
// Return something reasonable to the end user.
...
}
请注意,@ExceptionHandler
基本上具有与通常处理程序几乎相同的功能:
Much like standard controller methods annotated with a @RequestMapping annotation, the method arguments and return values of @ExceptionHandler methods are very flexible.
关于java - 配置@PathVariable类型不匹配的错误页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15431180/