问题现象:
Client使用URL发送时http://service/xxx?typeEnum=MAN
Server可以接收,但是当使用FormData来传递Enmu时,对方报
Failed to convert value of type 'java.lang.String' to required type “enum”
核心问题在于,当你按部就班:
Map formData=new LinkedMultiValueMap()
formData.add("typeEnum",TypeEnum.MAN)
时,Server端接收到的是”\"MAN\""字符串,Server端spring最终层层delegate调用到的Enum.valueOf(EnumType,String value)方法当然不能识别到了
解决方案非常简单:
formData.add("typeEnum",TypeEnum.MAN.toString())
即可,这样Server端接收到的就是"MAN"字符串了,接收就正常了