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

标签 java spring servlets custom-error-pages

假设我有一个 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/

相关文章:

java - 在哪里存储 Servlet 的单例?

java - Java 中的空指针访问消息

java - 如何在Android Studio中使用OpenCV检测和计数随机大小的白色物体

spring - 如何仅将筛选器注册到一个@RequestMapping方法?

java - 希望我的 Spring Controller 返回一个没有 View 的字符串

java - Spring Boot 和数据库默认数据与 Mongodb

java - 修复 java servlet 服务的 HTML 中的相对路径(对于 HTML5 pushstate)

java - 如何知道java中我的类和方法的调用者?

c# - 在循环中迭代项目

java - 仅使用 1 个临时变量查找数组列表中不重复的元素