错误信息:
java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.String
at java.lang.Iterable.forEach(Iterable.java:75)
at org.springframework.http.converter.FormHttpMessageConverter.lambda$serializeForm$2(FormHttpMessageConverter.java:331)
查看FormHttpMessageConverter.java源码
protected String serializeForm(MultiValueMap<String, String> formData, Charset charset) {StringBuilder builder = new StringBuilder();formData.forEach((name, values) ->values.forEach(value -> {try {if (builder.length() != 0) {builder.append('&');}builder.append(URLEncoder.encode(name, charset.name()));if (value != null) {builder.append('=');builder.append(URLEncoder.encode(value, charset.name()));}}catch (UnsupportedEncodingException ex) {throw new IllegalStateException(ex);}}));return builder.toString();}
可以看出MultiValueMap<String, String>的key和value都是String的
结论
使用MultiValueMap传参的时候需要保证key和value都是String类型的
作者:猿份哥
原文链接:/view/36
版权声明:本文为博主原创文章,转载请附上博文链接!