Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Spring@RequestParam类型不匹配异常?_Java_Spring_Spring Mvc - Fatal编程技术网

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的,或者其他的。