奇怪,如果我的方法签名这样写:
@RequestMapping(value = "/admin/blog/catalog/save", method = RequestMethod.POST, produces = "applicatoin/json;charset=UTF-8")
报错,为406 notacceptable,如果我把注解的produces属性去掉则正确,但是后台日志写的也是application/json,如下:
Written [{message=success}] as "application/json;charset=UTF-8" using [org.springframework.http.converter.json.MappingJackson2HttpMessageConverter@194bd83]
真怪!!!
另外一个:
还有一个接收参数的地方想不通,我用的ajax form提交,所以contenttype为:Content-Type:application/x-www-form-urlencoded; charset=UTF-8(由于插件限制,提交的格式不是json格式)
那么如果我加@RequestBody是后台报not support mediatype,这个我明白,后台默认注册的httpmessageconverter没有支持这个contenttype的,但是如果我加modelattribute或者干脆什么都不加像这样:
public Map saveCatalog(Catalog catalog){...}
接收正常。
问题:什么都不加的时候是怎么绑定参数的,后台debug log没打!
BTW:提交的参数为form格式,即XXX:XXX
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
第一个,看reference说应该这样写: produces = "applicatoin/json"
charset=UTF-8这部分写个字符过滤器不就好了,不用每个方法都写上吧 contenttype 这玩意我一直没使用过,返回json 就用@RequestBody就可以了。