文档章节

springMVC 和ajax 最先进数据交互方式和 406错误处理

尘叙缘
 尘叙缘
发布于 2016/04/09 15:40
字数 301
阅读 129
收藏 9

一.引入spring-web-3.2.12.RELEASE.jar, spring-webmvc-3.2.12.RELEASE.jar, jackson-core-asl.jar,jackson-mapper-asl-1.9.3.jar 

二. js采用ajax发送请求和接收数据,数据格式为json

$(document).ready(  
    function() {  
      jQuery.ajax( {  
        type : 'GET',  
        contentType : 'application/json',  
        url : 'user/list',  
        dataType : 'json',  
        success : function(data) {  
          if (data && data.success == "true") {  
            $('#info').html("共" + data.total + "条数据。<br/>");  
            $.each(data.data, function(i, item) {  
              $('#info').append(  
                  "编号:" + item.id + ",姓名:" + item.username  
                      + ",年龄:" + item.age);  
            });  
          }  
        },  
        error : function() {  
          alert("error")  
        }  
      });  
    });


三. controller中是用注解@ResponseBody 可以将结果(一个包含字符串和JavaBean的Map),转换成JSON,

使用 @RequestBody 注解前台只需要向 Controller 提交一段符合格式的 JSON,Spring 会自动将其拼装成 bean。 

@Controller  
@RequestMapping("/user")  
public class DemoController {  
  private Logger logger = LoggerFactory.getLogger(DemoController.class);  
  
  @RequestMapping(value = "/list", method = RequestMethod.GET)  
  @ResponseBody  
  public Map<String, Object> getUserList() {  
    logger.info("列表");  
    List<UserModel> list = new ArrayList<UserModel>();  
    UserModel um = new UserModel();  
    um.setId("1");  
    um.setUsername("sss");  
    um.setAge(222);  
    list.add(um);  
    Map<String, Object> modelMap = new HashMap<String, Object>(3);  
    modelMap.put("total", "1");  
    modelMap.put("data", list);  
    modelMap.put("success", "true");  
    return modelMap;  
  }   
}


如果这种交互方式,报有如下错误:

页面 : http 请求返回错误: 406

后台: org.springframework.web.HttpMediaTypeNotAcceptableException: Could not find acceptable representatio


说明后台返回的json数据格式有误,应在spring xml文件中加上如下代码:

<bean id="jacksonMessageConverter" class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"></bean>
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
	<property name="messageConverters">
		<list>
		    <ref bean="jacksonMessageConverter"/>
		</list>
	</property>
</bean>


© 著作权归作者所有

尘叙缘
粉丝 9
博文 106
码字总数 88164
作品 0
深圳
程序员
私信 提问
spring mvc Ajax 的运用以及遇到的问题

Spring mvc 3.x版本,在支持Ajax方面还是不错的,看文档我们发现,只要我们在Controller里添加@RequestBody 和@ResponseBody两个标签后,就能把前台传过来的JSON对象进行转换成我们的java对象...

Line
2014/02/27
3.4K
0
SpringMVC ajax请求406 错误解决方案

SpringMVC ajax请求406 错误解决方案: 在springMVC配置文件中添加以下代码: <!--避免ajax请求出现406错误--><bean id="contentNegotiationManager" class="org.springframework.web.accept......

火龙战士
2015/11/05
2.6K
0
SpringMVC纯注解配置下HttpMessageConverter不起作用

ajax访问,但是一直返回406 Controller返回vo通过@ResponseBody标识 SpringMVC注解配置——节选 但是不管怎么配置,从jdk1.7升级到1.8后还是不行,只是返回406,而且配置了SpringMVC拦截器也...

HaydnSyx
2016/11/02
605
0
SpringMVC Jackson Ajax 返回406错误!

Spring mvc 使用注解@ResponseBody Ajax请求返回json 报406错误!(使用Jackson转换) 已经加入的Jackson的依赖包,ajax 也没有问题,controller也能正常访问,请大牛指导一下,调试了半天还...

帐号以作废
2014/04/16
6.6K
12
SpringMVC3.2.x整合Fastjson与Controller单元测试

SpringMVC与Fastjson整合相当简单,只要在pom引入fastjson包后,配置一下SpringMVC的messageConverter就可以使用了。 但是如果在单元测试时,使用mockMvc测试controller 此时会报406错误,也...

bfleeee
2014/10/20
1K
1

没有更多内容

加载失败,请刷新页面

加载更多

如何在Linux中复制文档

在办公室里复印文档过去需要专门的员工与机器。如今,复制是电脑用户无需多加思考的任务。在电脑里复制数据是如此微不足道的事,以致于你还没有意识到复制就发生了,例如当拖动文档到外部硬盘...

老孟的Linux私房菜
35分钟前
10
0
SpringBoot 集成MongoDB

一、MongoDB 简介 MongoDB 如今是最流行的 NoSQL 数据库,被广泛应用于各行各业中,很多创业公司数据库选型就直接使用了 MongoDB,但对于大部分公司,使用 MongoDB 的场景是做大规模数据查询...

zw965
44分钟前
21
0
使用 Envoy 和 AdGuard Home 阻挡烦人的广告

> 原文链接:使用 Envoy 和 AdGuard Home 阻挡烦人的广告 通常我们使用网络时,宽带运营商会为我们分配一个 DNS 服务器。这个 DNS 通常是最快的,距离最近的服务器,但会有很多问题,比如: ...

米开朗基杨
今天
27
0
springboot之全局处理异常封装

springboot之全局处理异常封装 简介 在项目中经常出现系统异常的情况,比如NullPointerException等等。如果默认未处理的情况下,springboot会响应默认的错误提示,这样对用户体验不是友好,系...

Purgeyao
今天
31
0
cookie

cookie: n. 饼干;小甜点 为什么会引入Cookie(在客户端保持http状态) 因为http协议是一种无状态协议,web服务器本身不能识别出哪些请求是同一个服务器发送的,浏览器的每一次请求都是独立...

五公里
今天
30
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部