工作中遇到springmvc框架定义的方法中使用了【@RequestBody】 这个注解
代码如下:
@RequestMapping(value = "create", method = RequestMethod.POST)
@ResponseBody
public ResultData createOrder(@RequestBody PrintOrders printOrders, HttpServletRequest request) throws JsonGenerationException, JsonMappingException, IOException {
Integer productId = printOrders.getProductId();
}
调用接口的时候发生异常
2018-05-07 10:55:59.323 [qtp983814036-76] WARN o.s.w.s.m.s.DefaultHandlerExceptionResolver - Failed to bind request element: org.springframework.web.method.annotation.MethodArgumentTypeMismatchException: Failed to convert value of type 'java.lang.String' to required type 'java.lang.Long'; nested exception is java.lang.NumberFormatException: For input string: "create"
明显说的是转换类型问题, 引起这个问题的原因是@RequestBody ,注解用于读取http请求的内容并通过httpMessageConverter接口将内容绑定到controller的方法参数上,由于我没传printorders的参数,所以转换类型失败。