Java Spring@RequestParam类型不匹配异常?
因此,我有以下控制器:Java Spring@RequestParam类型不匹配异常?,java,spring,spring-mvc,Java,Spring,Spring Mvc,因此,我有以下控制器: @RequestMapping(value = "/test.html", method = RequestMethod.POST) public String test(Model model, @RequestParam(value = "uid", required = true) Long uid) { // logic to play with uid } 当uid类型不正确时,Spring会抛出什么类型的异常,例如String? 从文档中可以看出,这
@RequestMapping(value = "/test.html", method = RequestMethod.POST)
public String test(Model model, @RequestParam(value = "uid", required = true) Long uid) {
// logic to play with uid
}
当uid
类型不正确时,Spring会抛出什么类型的异常,例如String
?从文档中可以看出,这看起来像是一个异常处理程序,但并没有捕获到相应类的异常处理程序
@ExceptionHandler(value = {ConversionFailedException.class,})
@ResponseStatus(value = HttpStatus.NOT_ACCEPTABLE)
public ModelAndView wrongParameterType(ConversionFailedExceptione,HttpServletRequest request){
//log and things
}
我还尝试了捕获哪个,但我很困惑,因为在文档中,这是在试图设置bean属性时抛出的
您能否澄清引发异常的类型和时间?因为,您所说的,如果您以字符串形式提供“uid”&您期望的是ConversionFailedException。 但是,ConversionFailedException通常发生在可能存在合适的转换器且java无法找到该转换器时 如果您仍然没有理解,下面是一些人曾经问过的一个问题,您可以在哪里理解ConversionFailedException
然而,经过测试,您可以检查是否存在MethodArgumentTypeMismatchException,其根本原因为NumberFormatException,这清楚地表明java响应了您的转换,但无法将字符串转换为整数难道您不能查看堆栈跟踪以查找引发的异常吗?经过两次测试,始终引发
org.springframework.web.method.annotation.MethodArgumentTypeMismatchException
。请检查控制台或修改处理程序以捕获Exception.class并打印记录器或其他内容。您可以先捕获字符串中的值。然后检查它是长的还是int的,或者其他的。