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

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