SpringMVC之ajax传递jason数据详解以及@RequestBody和@ResonseBody注解

     最近在作ajax进行用户名校验时遇到了一些问题,在不断debug的过程当中也加深了我对springMVC之ajax传递jason数据的理解,但愿对有须要的小伙伴一些帮助~html

工具:IDEA 前端

咱们经过code来理解一下:ajax

1.以下图时js代码:由于是对用户名校验,因此传入的数据只有用户名;spring

PS:SpringMVC 经过ajax传参到后台时:由于@RequestBody接收的是一个Json对象的字符串,而不是一个Json对象。然而在ajax请求每每传的都是Json对象,用 JSON.stringify(data)的方式就能将对象变成字符串。同时ajax请求的时候也要指定dataType: "json",contentType:"application/json"。json

 2.controller中的实现:mvc

   你们能够发现咱们传入的数据只有用户名为何RequestBody获得的是一个POJO类的对象(固然这个Admin类不止这个属性啦)呢?那就须要咱们对@RequestBody和@ResponseBody这两个注解和SpringMVC中ajax的具体操做有一个了解啦。app

①.首先简单介绍下Jackson:Jackson是一个简单基于Java应用库,Jackson能够轻松的将Java对象转换成json对象和xml文档,一样也能够将json、xml转换成Java对象;要引入强大的Jackson须要咱们在pom.xml中导入相关的依赖(须要配置XML <mvc:annotation-driven /> 框架

如图:工具

能够在外部库中看到:spa

 关于Jackson的详细用法你们能够参考这篇文章http://www.javashuo.com/article/p-holmwhpv-ez.html

.@RequestBody:简单的说就是 RequestBody用于获取请求体的结构,使用了Jackson框架和@RequestBody注解后因此能够实现把请求体的内容封装到Admin对象中,同时Spring MVC 会按请求参数名和 POJO 属性名进行自动匹配,自动为该对象填充属性值。

③.@ResponseBody:ResponseBody将返回的值直接写到Http的响应体中,不须要替换为Spring的Model或者解析为视图,至关于response.getWriter.write();当使用了Jackson框架和@ResponseBody注解以后,Jackson框架自动将对象解析成Json串返还数据给前端页面。

你们想详细了解@RequestBody和@ResponseBody的参考这篇文章:http://www.chinacion.cn/article/608.html

      所以咱们传入的Jason数据因为咱们添加了Jackson依赖后会被转换为Java对象,同时Spring MVC 会按请求参数名和 POJO 属性名进行自动匹配,因此咱们对POJO类的对象调用service层的方法啦~是否是以为灰常强大灰常好用啊,嘻嘻小伙伴要是以为有帮助的话欢迎顶一下哈~

相关文章
相关标签/搜索