SpringMVC的406错误

来源:互联网 发布:淘宝护肤品店铺范文 编辑:程序博客网 时间:2024/05/17 08:23

springmvc在处理请求时,加上@responsebody注解之后会将java对象使用jackson工具包转换成json字符串。转换失败时就会抛出406错误。
1、首先检查工程中jackson相关jar包是否存在;
2、springMVC拦截的后缀是不是.html。如果是.html那么springmvc会认为请求的是网页,而不是json数据,所以提示406。解决方法,在web.xml中增加新的过滤后缀<servlet-mapping>,例如.action。然后在使用js或者httpclient发起请求时,url后缀改为.action即可正常返回json数据;
3、特例:如果controller的返回类型是string,那么@responsebody注解+url后缀是.html并不会产生任何错误,因为不需要转换。如果出现post中文乱码问题,则在@RequestMapping注解中添加属性produces=MediaType.TEXT_HTML_VALUE+";charset=utf-8"