@ResponseBody返回json数据报异常
来源:互联网 发布:tensorflow linux cuda 编辑:程序博客网 时间:2024/06/14 07:22
传统的返回JSON格式的AJAX,用的方法一般是:在后台先把数据(Object)封装成JSON数据,再用HttpServletResponse返回。
本示例中,SpringMVC可直接支持JSON格式数据的返回。具体如下。
1、JAR包:SPRINGMVC包需的包,另外还需JACKSON的两个包。
jackson-core-asl-1.9.2.jar
jackson-mapper-asl-1.9.2.jar
下载地址: http://pan.baidu.com/s/1ntlyuNZ
2、spring-servlet.xml中加入:
我们在SPRING的配置中加入了一个新的适配器:AnnotationMethodHandlerAdapter,通过这个适配器,我们配置了一个属性,messageConverters,其中mappingJacksonHttpMessageConverter这个Bean,它就是用来处理json数据转换的。
注:我的项目中没有乱码现象,这样配即可,若有乱码现象,可以在MappingJacksonHttpMessageConverter的BEAN中配置supportedMediaTypes属性,是用于解决返回的乱码问题。
3、Controller中的使用
在SpringMVC中可以在Controller的某个方法上加@ResponseBody注解,表示该方法的返回结果直接写入HTTP response body中。
------------------------------------------
遇到的问题:
用上面的controller,访问:http://localhost:8080/demo/type.htm,报406错如下:
Failed to load resource: the server responded with a status of 406 (Not Acceptable) : The resource identified by this request is only capable of generating responses with characteristics not acceptable according to the request "accept" headers ()
查资料表明,不是JAR的版本问题,网友解答描述:
1、spring 3.2时requestedMediaTypes却为[text/html]的情况报406错误,还有一个原因可能是由于采用的后缀有关,如果使用*.htm,*.html等,默认就会采用[text/html]编码,若改成*.json,*.shtml等就OK
2、3.2.4 也遇到这个问题。修改ajax 请求的后缀为json 或者其他就可以了。他还是会优先根据url请求的后缀决定请求类型。所以你看到的一直是[text/html]
所以,将访问路径从http://localhost:8080/demo/type.htm改为http://localhost:8080/demo/type.json即可。
(如果你只拦截htm开头的链接,可以在web.xml里新增一个url-pattern为*.json的servlet即可。)
- @ResponseBody返回json数据报异常
- @ResponseBody返回json数据报异常
- springmvc @ResponseBody 返回json数据错误
- springmvc @ResponseBody 返回json数据错误
- springmvc配置responsebody返回json格式数据
- spring4.1.5 @ResponseBody返回JSON数据406
- spring3.0 @ResponseBody 返回json数据乱码
- Spring MVC 通过@ResponseBody标签返回JSON数据 报406错误的解决方法
- springmvc @ResponseBody返回json 报406 not acceptable
- SpringMVC 使用@ResponseBody 返回json 报错,一直不出来
- HTTP Status 406 - @ResponseBody 返回json报错
- Springmvc @ResponseBody返回ajax数据时,报错406
- spring MVC 3.1 注解:@ResponseBody 返回json数据
- spring MVC 3.1 注解:@ResponseBody 返回json数据
- 前台怎么接收spring @ResponseBody返回的json数据 map
- easyui ajax请求获取SpringMVC @ResponseBody返回Json数据
- @ResponseBody返回JSON数据时遇到406错误
- Springmvc 4.x利用@ResponseBody返回Json数据
- JAVA设计模式之抽象工厂模式
- Fresco加载图片Utils
- Android安全防护之旅---Android应用"反调试"操作的几种方案解析
- UVa227 PUZZLE accepted code
- 机器学习 特征工程之特征选择
- @ResponseBody返回json数据报异常
- Windows 下Nexus搭建Maven私服
- ACM-递归递推练习C-递归的函数(记忆化搜索)
- ASP.NET中TextBox控件设立ReadOnly="true"后台取不到值
- 数字翻转
- Linux 12.0情况下出现搜狗输入法只能输入拼音的问题解决
- android 文件合并打包 Error:Execution failed for task ':app:processEnv_devDebugManifest' '解决方案
- 鼠标/键盘事件 相关属性
- ubuntu certer pdf and convert several pdf into one