SpringMVC ----- SpringMVC的數據處理

前言

今天我們聊一聊關於url地址中的傳遞的參數是如何與我們後端的邏輯代碼對應的。

1. 提交的參數名稱和處理方法的參數名一致

由於MVC底層具有良好的匹配規範,我們不必再像JavaWeb那樣通過request.getParameter(“xxx”) 獲取前端傳遞的參數了,只要名字一致可以直接獲取。
[1] 提交數據: http://localhost:8080/hello?name=gs
[2] 處理方法
這裏的name可以直接獲取url中參數傳遞的值

@RequestMapping("/hello")
public String hello(String name){
    System.out.println(name);
    return "hello";
}

控制檯上可以輸出: gs

2. 提交的參數的名稱和處理方法的參數名不一致

通過@RequestParam指定對應的參數名稱
[1] 提交數據:http://localhost:8080/hello?username=gs
[2] 處理方法(通過@RequestParam映射相應的參數名)

//@RequestParam("username"): username提交的域的名稱
@RequestMapping("/hello")
public String hello(@RequestParam("username") String name){
    System.out.println(name);
    return "hello";
}

控制檯上可以輸出: gs

3. 提交的是一個對象

由於這裏不是單一的數據類型,要求我們表單提交的數據封裝成一個對象,且表單項的名字要和對象的屬性名一致
[1] 編寫實體類 (這裏省略了get,set方法)
User.class

package com.gs.pojo;
public class User {

    private int id;
    private String name;
    private int age;
}

[2] 提交的數據爲:http://localhost:8080/user/t2?id=1&name=gs&age=18
[3] 處理的方法
通過一個對象封裝前端傳遞的參數

@GetMapping("/t2")
 public String test2(User user){

     System.out.println(user);
     //1.視圖跳轉
     return "test";
 }

控制檯輸出的數據
在這裏插入圖片描述
聊完後臺接收前端的數據後,我們再談談後臺如何傳遞數據給前端

4. 數據顯示到前端

共有三種方式:
第一種通過ModelAndView (這個不僅可以封裝數據,還可以設置視圖名。在實現接口的方式中較爲常用)
第二種通過ModelMap (它繼承了LinkedHashMap,除了傳遞數據後,同時擁有LinkedHashMap的方法和屬性)
第三種通過Model (這是ModelMap 的精簡類型,它只負責傳遞數據,操作簡單,使用廣泛)
在這裏插入圖片描述
在這裏插入圖片描述
簡單對比:
Model :只有寥寥幾個方法只適合用於存儲數據,簡化了新手對Model對象的操作和理解
ModelMap: 繼承了LinkedHashMap,除了實現自身的一些方法,同時擁有LinkedHashMap的方法和屬性
ModelAndView: 可以在存儲數據的同時,設置返回的邏輯視圖,進行控制層的跳轉 (一般使用在控制層是實現接口的情況下,但現在的開發中大多使用註解類型,所以這個比較少用,我們一般都直接使用Model即可)

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