最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SpringBoot接收請求參數(shù)的四種方式總結

 更新時間:2023年09月12日 09:38:01   作者:特立獨行的程序員  
這篇文章主要給大家介紹了關于SpringBoot接收請求參數(shù)的四種方式,文中通過代碼以及圖文介紹的非常詳細,對大家學習或者使用SpringBoot具有一定的參考借鑒價值,需要的朋友可以參考下

【方式一】原始方式

因為SpringBoot封裝了Servlet,所以也允許使用HttpServletRequest類中的方法來獲取

    /**
     * 【方式一】原始方式
     */
    @RequestMapping("/demo01")
    public String demo01(HttpServletRequest request) {
        // 參數(shù)名要與頁面提交的參數(shù)名一致
        String name = request.getParameter("name");
        String age_str = request.getParameter("age");
        // 接收到的數(shù)據(jù)都是String類型,想要int類型需要類型轉換
        Integer age_int = Integer.parseInt(age_str);
        return "我叫" + name + ",今年" + age_int;
    }

使用postman發(fā)送:http://localhost:8080/demo01?name=張三&age=30,查看結果

【方式二】鍵值對

1、直接使用參數(shù)名(或別名)

springboot允許直接使用參數(shù)獲取,簡單優(yōu)雅;另外,還也可使用“@RequestParam”注解給參數(shù)設置別名,這樣頁面提交的參數(shù)名使用別名也能獲取到;

/**
	 * 【方式二】1.直接使用參數(shù)名
	 */
	@RequestMapping("/demo02")
	public String demo02(String name, Integer age) {
	    return "我叫" + name + ",今年" + age;
	}
    /**
     * 【方式二】1.直接使用別名
     */
    @RequestMapping("/demo02")
    // 可用@RequestParam給參數(shù)設置別名
    public String demo02(@RequestParam(name="Name")String name, Integer age) {
        return "我叫" + name + ",今年" + age;
    }

2、對象數(shù)據(jù)

可以創(chuàng)建一個對象,將頁面提交的數(shù)據(jù)封裝成一個對象來接收;注意對象的屬性名要和頁面提交的參數(shù)名一致

/**
 * 人類
 */
public class Person {
    /**
     * 姓名
     */
    private String name;
    /**
     * 年齡
     */
    private Integer age;
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public Integer getAge() {
        return age;
    }
    public void setAge(Integer age) {
        this.age = age;
    }
    @Override
    public String toString() {
        return "Person{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
}
    /**
     * 【方式二】2.對象數(shù)據(jù)
     */
    @RequestMapping("/demo03")
    public String demo03(Person person) {
        return "我叫" + person.getName() + ",今年" + person.getAge();
    }

3、數(shù)組/集合數(shù)據(jù)

(1)數(shù)組

/**
	 * 【方式二】3.數(shù)組數(shù)據(jù)
	 * @param hobby 數(shù)組名
	 */
	@RequestMapping("/param04")
	public String param04(String[] hobby) {
	    return Arrays.toString(hobby);
	}

(2)單獨接收集合數(shù)據(jù)需要加“@RequestParam”注解

    /**
     * 【方式二】3.集合數(shù)據(jù)
     * @param hobby 集合名
     */
    @RequestMapping("/demo04")
    // 單獨接收集合數(shù)據(jù)需要加@RequestParam
    public String param04(@RequestParam List hobby) {
        return hobby.toString();
    }

4、日期數(shù)據(jù)

    /**
     * 【方式二】4.日期數(shù)據(jù)
     * @param time 參數(shù)名
     */
    @RequestMapping("/demo05")
    // 接收日期數(shù)據(jù)需要加@DateTimeFormat,并設置時間模板
    public String demo05(@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") LocalDateTime time) {
        System.out.println(time.getClass());
        return time.toString();
    }

【方式三】json格式

創(chuàng)建兩個javaBean,Address類是User類的一個屬性

import com.fasterxml.jackson.annotation.JsonFormat;
import java.time.LocalDateTime;
import java.util.List;
/**
 * 用戶類
 */
public class User {
    private String username;
    private String password;
    private Integer age;
    private Double score;
    private Address address;
    // 時間格式屬性要加@JsonFormat注解,并可設置時間模板
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime time;
    // 集合作為一個javaBean的屬性時,不需要加@RequestParam注解
    private List hobby;
	/* set()、get()、toString()方法 */
}
/**
 * 聯(lián)系地址
 */
public class Address {
    private String phone;
	/* set()、get()、toString()方法 */
}
    /**
     * 【方式三】json數(shù)據(jù)
     * @param user 用戶類
     */
    @RequestMapping("/demo06")
    public String demo06(@RequestBody User user){
        // 打印user對象的內容
        System.out.println(user);
        return "success";
    }

控制臺打印user對象內容

小結

需要注意以下幾點:

(1)接收時間格式的數(shù)據(jù),屬性要加@JsonFormat注解;

(2)封裝json對象數(shù)據(jù),形參前面要加@RequestBody,表示將請求的json數(shù)據(jù)轉換成對象接收;

(3)使用postman發(fā)送json數(shù)據(jù),需要使用post提交方式;因為json數(shù)據(jù)要放在請求體中,get提交沒有請求體;

(4)這種接收方式,需要跟前面的【鍵值對】接收對象數(shù)據(jù)的方式區(qū)分開。

這種方式提交的json數(shù)據(jù),接收時需要加@RequestBody;前面【鍵值對】接收對象數(shù)據(jù)的方式,提交的是鍵值對數(shù)據(jù),接收時不需要加注解。

所以,如果發(fā)現(xiàn)頁面提交的數(shù)據(jù),程序接收不到,需要考慮是不是錯誤的把頁面提交的json數(shù)據(jù)當成是一個對象來接收了;反之,如果傳入的參數(shù)是鍵值對方式,用對象加@RequestBody注解來接收,也接收不到。

【方式四】路徑參數(shù)

路徑參數(shù),是指把數(shù)據(jù)附加在訪問的路徑后面,數(shù)據(jù)以“/”間隔。在程序中接收的時候,需要在映射的路徑后面給參數(shù)設置參數(shù)名,并在形參列表中使用@PathVariable()注解,將參數(shù)值傳給形參。

/**
	 * 【方式四】路徑參數(shù)
	 */
	// 需要在路徑后面加{},{}內寫別名,表明該位置的參數(shù)值傳給形參中的哪個變量
	@RequestMapping("/demo07/{name}/{age}")
	public String demo07(@PathVariable("name") String name,
	                     @PathVariable("age") String age){
	    return "我叫" + name + ",今年" + age;
	}

總結

涉及到的Spring注解說明:

@RequestMapping:設置頁面訪問程序的路徑;

@RequestParam:用于給參數(shù)設置別名、單獨使用集合時;

@DateTimeFormat:用于單獨接收時間格式的數(shù)據(jù),格式化數(shù)據(jù);

@JsonFormat:接收json數(shù)據(jù)時,用于對象中需要格式化的數(shù)據(jù);

@RequestBody:接收json數(shù)據(jù)時,用于將請求的json數(shù)據(jù)轉換成對象接受;

@PathVariable:接收路徑參數(shù)時,用于將參數(shù)值傳分配給形參;

到此這篇關于SpringBoot接收請求參數(shù)的四種方式的文章就介紹到這了,更多相關SpringBoot接收請求參數(shù)內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • java/word+fusionchart生成圖表深入分析

    java/word+fusionchart生成圖表深入分析

    本文將以java/word+fusionchart生成圖表問題深入解析,有興趣的朋友可以參考下
    2012-11-11
  • idea插件之如何使用JarEditor編輯Java JAR文件

    idea插件之如何使用JarEditor編輯Java JAR文件

    JarEditor是一款用于在IntelliJIDEA中直接編輯JAR文件的插件,支持反編譯查看和編輯.class文件,并提供即時編譯與保存功能,通過JarEditor,用戶可以在IDE內一站式完成JAR文件的編輯、管理和打包操作,提高開發(fā)效率,但在生產環(huán)境中使用前,請確保備份并測試修改
    2025-01-01
  • SpringBoot設置編碼UTF-8的兩種方法

    SpringBoot設置編碼UTF-8的兩種方法

    本文通過兩種方式給大家介紹SpringBoot 設置編碼UTF-8 ,每種方式通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-11-11
  • springboot中事務管理@Transactional的注意事項與使用場景

    springboot中事務管理@Transactional的注意事項與使用場景

    今天小編就為大家分享一篇關于springboot中事務管理@Transactional的注意事項與使用場景,小編覺得內容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-04-04
  • JavaCV攝像頭實戰(zhàn)之實現(xiàn)口罩檢測

    JavaCV攝像頭實戰(zhàn)之實現(xiàn)口罩檢測

    這篇文章主要介紹了利用JavaCV實現(xiàn)口罩檢測,功能是檢測攝像頭內的人是否帶了口罩,把檢測結果實時標注在預覽窗口。感興趣的可以試一試
    2022-01-01
  • Java用list儲存,遍歷,查詢指定信息過程詳解

    Java用list儲存,遍歷,查詢指定信息過程詳解

    這篇文章主要介紹了Java用list儲存,遍歷,查詢指定信息過程詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-10-10
  • java byte與base64的互轉的實現(xiàn)示例

    java byte與base64的互轉的實現(xiàn)示例

    在項目開發(fā)中經常用到,比如前端上送文件流(byte[])到后臺并轉成文件,本文主要介紹了java byte與base64的互轉的實現(xiàn)示例,具有一定的參考價值,感興趣的可以了解一下
    2024-02-02
  • Java中toString()、String.valueOf、(String)強轉區(qū)別

    Java中toString()、String.valueOf、(String)強轉區(qū)別

    相信大家在日常開發(fā)中這三種方法用到的應該很多,本文主要介紹了Java中toString()、String.valueOf、(String)強轉區(qū)別,感興趣的可以了解一下
    2021-09-09
  • Mybatis代碼生成器Mybatis Generator(MBG)實戰(zhàn)詳解

    Mybatis代碼生成器Mybatis Generator(MBG)實戰(zhàn)詳解

    本文我們主要實戰(zhàn)Mybatis官方的代碼生成器:Mybatis Generator(MBG),掌握它以后,可以簡化大部分手寫代碼,我們只需要寫復雜邏輯代碼,需要的朋友可以參考下
    2023-05-05
  • Installij IDEA install或clean項目的使用

    Installij IDEA install或clean項目的使用

    這篇文章主要介紹了Installij IDEA install或clean項目的使用方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-08-08

最新評論

嘉峪关市| 岳普湖县| 宁远县| 长白| 平乡县| 房产| 罗定市| 兴国县| 南部县| 游戏| 泗阳县| 长沙县| 桂林市| 甘泉县| 积石山| 乌鲁木齐县| 凤城市| 弋阳县| 集安市| 临城县| 翁牛特旗| 乌兰浩特市| 冀州市| 顺义区| 鸡东县| 海淀区| 德格县| 肇庆市| 兴文县| 屏南县| 宽城| 元氏县| 龙里县| 济南市| 科尔| 达州市| 胶州市| 张掖市| 祁连县| 富阳市| 儋州市|