为什么在spring中发送Enum枚举时,使用URL的query方式可以发出去,而使用Map作为FormData的方式发送失败?

问题现象:

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"字符串了,接收就正常了

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章