Ajax Json交互

交互:两个方向

  • 前端到后台:前端ajax发送json格式字符串,后台直接接收为pojo参数,使用注解 @RequstBody
  • 后台到前端:后台直接返回pojo对象,前端直接接收为json对象或者字符串,使用注解 @ResponseBody

什么是 Json

Json是一种与语言无关的数据交互格式,就是一种字符串,只是用特殊符号 { } 内表示对象、[ ] 内表示数组、" " 内是属性或值、:表示后者是前者的值
{"name": "Michael"} 可以理解为是一个包含name为Michael的对象
[{"name": "Michael"},{"name": "Jerry"}] 就表示包含两个对象的数组

@ResponseBody注解

@responseBody注解的作用是将controller的方法返回的对象通过适当的转换器转换为指定的格式之后,写入到response对象的body区,通常用来返回JSON数据或者是XML数据。 注意:在使用此注解之后不会再走视图处理器,而是直接将数据写入到输入流中,他的效果等同于通过response对象输出指定格式的数据。

分析Spring MVC 使用 Json 交互

  • pom.xml 需要引入的jar包
<dependency>
  <groupId>com.fasterxml.jackson.core</groupId>
  <artifactId>jackson-core</artifactId>
  <version>2.11.0</version>
</dependency>
<dependency>
  <groupId>com.fasterxml.jackson.core</groupId>
  <artifactId>jackson-databind</artifactId>
  <version>2.11.0</version>
</dependency>
<dependency>
  <groupId>com.fasterxml.jackson.core</groupId>
  <artifactId>jackson-annotations</artifactId>
  <version>2.11.0</version>
</dependency>
  • spring-mvc.xml 添加静态资源的处理
<mvc:resources location="/WEB-INF/js/" mapping="/js/**"/>
  • index.jsp 中的代码
<div>
    <h2>Ajax json交互</h2>
    <fieldset>
        <input type="button" id="ajaxBtn" value="ajax提交"/>
    </fieldset>
</div>
<script type="text/javascript" src="/js/jquery.min.js"></script>

<script>
    $(function () {
        $("#ajaxBtn").bind("click",function () {
            // 发送ajax请求
            $.ajax({
                url: '/demo/handle07',
                type: 'POST',
                data: '{"id":"1","name":"李四"}',
                contentType: 'application/json;charset=utf-8',
                dataType: 'json',
                success: function (data) {
                    alert(data.name);
                }
            })
        })
    })
</script>
  • DemoController.java中的方法
@RequestMapping("/handle07")
// 添加@ResponseBody之后,不再走视图解析器那个流程,而是等同于response直接输出数据
// @ResponseBody
public @ResponseBody User handle07(@RequestBody User user) {

    // 业务逻辑处理,修改name为张三丰
    user.setName("张三丰");
    return user;
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容