有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

@PathVariable类型不匹配的java配置错误页

假设我有一个控制器:

@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”路径变量的类型不正确时才会显示该页面


共 (1) 个答案

  1. # 1 楼答案

    对于这个特定的错误,您可以使用@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.