SpringMVC中Ajax Json交互

交互:两个⽅向
1 )前端到后台:前端 ajax 发送 json 格式字符串,后台直接接收为 pojo 参数,使⽤注解 @RequstBody
2 )后台到前端:后台直接返回 pojo 对象,前端直接接收为 json 对象或者字符串,使⽤注解
@ResponseBody

一. 什么是 Json

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

二. @ResponseBody注解

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

三. 分析Spring MVC 使⽤ Json 交互

所需jar

    <!--json数据交互所需jar,start-->
    <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-core</artifactId>
      <version>2.9.0</version>
    </dependency>
    <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-databind</artifactId>
      <version>2.9.0</version>
    </dependency>
    <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-annotations</artifactId>
      <version>2.9.0</version>
    </dependency>
    <!--json数据交互所需jar,end-->
前端jsp⻚⾯及js代码
    <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>
后台Handler⽅法
    @RequestMapping("/handle07")
    // 添加@ResponseBody之后,不再走视图解析器那个流程,而是等同于response直接输出数据

    public @ResponseBody User handle07(@RequestBody User user) {

        // 业务逻辑处理,修改name为张三丰
        user.setName("张三丰");
        return user;
    }

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值