註解的使用筆記


略讀可以只看加粗字體

1.@ResponseBody註解

1.1 作用

將Controller的方法return的對象,通過SpringMVC提供的HttpMessageConverter 轉換器轉換爲JSON,XML等格式後,寫入到HTTP的response對象的body區(通過Response響應給前臺)。

1.2 用法

一般使用在異步(AJAX)獲取數據(json 數據)時 。將對象轉成json等格式的數據return回前臺。

注意:使用 @RequestMapping後,返回值通常解析爲跳轉路徑,但是加上 @ResponseBody 後返回結果不會被解析爲跳轉路徑,而是直接寫入 HTTP response body 中。使用註解之後不會進入conntroller,而是直接將數據寫入到輸入流中,他的效果等同於通過response對象輸出指定格式的數據,如示例1.3.1。

1.3 代碼示例

示例1.3.1

    @RequestMapping("/login")
    @ResponseBody
   // User字段:userName pwd
    public User login(User user){
    return user;
    }

效果等同於如下代碼:

@RequestMapping("/login")
public void login(User user, HttpServletResponse response){
response.getWriter.write(JSONObject.fromObject(user).toString());
}

前臺接收到的數據是:’{“userName”:“xxx”,“pwd”:“xxx”}’

示例1.3.2

前臺異步請求:

function loginAction() {
    // 獲取用戶輸入的賬號和密碼
    var name = $('#count').val();
    var password = $('#password').val();
    
    $.ajax({
    url : 'account/login.do',
    type : 'post',
    // data對象中的屬性名要和服務端控制器的參數名一致 login(name, password)
    data : {
        'name' : name,
        'password' : password
    },
    dataType : 'json',
    success : function(result) {
        if (result.state == 0) {
            // 登錄成功,設置cookie並跳轉edit.html
            addCookie('userId', result.data.id);
            addCookie('nick', result.data.nick);
            location.href = 'edit.html';
        } else {
            // 登錄失敗
        }
    }
});

後臺 Controller類中對應的方法:

    @RequestMapping("/login.do")
    @ResponseBody
    public Object login(String name, String password, HttpSession session) {
        user = userService.checkLogin(name, password);
        session.setAttribute("user", user);
        return new JsonResult(user);
    }

2. @RequestBody註解

1.1 作用

用於讀取http請求的內容(字符串),通過SpringMVC提供的HttpMessageConverter接口將讀到的內容轉換爲json、xml等格式的數據,並綁定到Controller類方法的形參數上。

1.2 用法

後臺接收http請求的json數據,將json數據轉換爲java對象。

1.3 代碼示例

在這裏插入圖片描述

參考原文:https://www.cnblogs.com/qiankun-site/p/5774325.html
參考原文:https://www.cnblogs.com/daimajun/p/7152970.html
參考原文:https://blog.csdn.net/zmx729618/article/details/78779073

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