SpringMVC之ajax请求与返回json字符 03

在开发过程中难免会遇到异步请求比如ajax那么下面就是SpringMVC对ajax请求的处理
声明:下面的所有的操作都是基于SpringMVC环境配置下操作的

1.首先要在pom.xml文件中添加Json与Bean对象互转的依赖

<!--json与javaBean互转的依赖-->
        <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-core</artifactId>
            <version>2.9.0</version>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-annotations</artifactId>
            <version>2.9.0</version>
        </dependency>

2.因为接下来我们要使用ajax异步请求所以要在webapp文件夹下新建一个js文件夹存放jquery文件并在springmvc.xml文件中配置如下

<!--让前端控制器不拦截某些静态资源-->
<mvc:resources  location="/js/" mapping="/js/**"/>

在这里插入图片描述
当然我们也可以使用链接获取jquery文件,这种方式要有网络的情况下才适用

<script src="http://libs.baidu.com/jquery/2.0.0/jquery.js"></script>

在这里插入图片描述

3.测试

测试方法:新建一个按钮绑定单击事件,然后再单击事件向后端发送ajax请求,在后端将name值改变然后响应给前端,最后将后端返回的name值弹出到屏幕上
1.我的测试javabean:有以下字段并为其配上toString方法 get方法set方法有参数构造和无参构造
在这里插入图片描述
2.前端代码实现:
其中 data中的值要与实体类也就是javabean对象得属性相对应

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<script src="js/jquery.min.js"></script>
<script src="http://libs.baidu.com/jquery/2.0.0/jquery.js"></script>
<script>
    $(function () {
        $("#btn01").click(function () {
            $.ajax({
                url:"getAjax",
                contentType:"application/json;charset=utf-8",
                type:"post",
                dataType:"json",
                data:'{"name":"msg","pwd":"123","sex":"msg","age":"123"}',
                success:function (data) {
                    alert(data.name);
                }
            })
        });
    })
</script>
<body>
<h1>测试</h1>
<button id="btn01">ajax访问</button>
</body>
</html>

在这里插入图片描述

5.Controller中接收请求

@RequestBody:是用来获取请求体,并将请求体封装到User实体中前提时提交的数据一定要与实体中的属性相对应
@ResponseBody:先将返回值转化为json字符串然后响应给前端

package cn.msg.controller;

import cn.msg.bean.User;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
public class UserController {
    /**
     * 吃了空构造的亏,写了有参构造一定要写空构造,不
     * 然此处无法将传来json字符串转化为javabean
     * @param user
     * @return
     */
    @RequestMapping("/getAjax")
    public @ResponseBody User getAjax(@RequestBody User user) {
        System.out.println("getAjax已执行");
        System.out.println(user.toString());
        user.setName("我是姓名");
        return user;
    }
}

在这里插入图片描述
测试
在这里插入图片描述

发布了45 篇原创文章 · 获赞 47 · 访问量 1697

猜你喜欢

转载自blog.csdn.net/qq_44784185/article/details/103906180
03
今日推荐