今天在做上传图片的功能的时候,遇到了400错误,显示参数有问题。我的视图控制器如下。
@RequestMapping("/docreateSpace")
public String decreatespace(MemberSpace memberSpace,@RequestParam("icon")MultipartFile icon,HttpSession session,HttpServletRequest req)
多次与jsp中的参数key值对比,发现没有错误,可是一直报这种错误。
花了很久,才发现一个被我忽略的问题,或者说是理解上的错误。这里的memberspace的bean相当于将其中的字段展开。在我的memberspace中,也有一个字段是icon,与multipartfile的参数相冲突,从jsp传过来的icon被memberspace中的string类型的icon获取,发生错误。原因就这么简单。改一下file的参数就可以了。在这之前,我是很主观的想当然的编程,没有从代码的角度考虑。
总结一下,我们控制器传入的参数和jsp传入的参数尽量不要出现多对一的情况。而在一对多的情况下,也要保证类型对应。