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;
    }
}

在這裏插入圖片描述
測試
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章