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

SpringBoot如何獲取Get請求參數(shù)詳解

 更新時間:2022年12月06日 10:30:29   作者:瞎胡扯  
SpringBoot為我們封裝了許多簡便的獲取請求參數(shù)的方法,下面這篇文章主要給大家介紹了關于SpringBoot如何獲取Get請求參數(shù)的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下

前言

利用 Spring Boot 來制作 Web 應用,就必定會涉及到前端與后臺之間互相傳遞參數(shù)。下面演示 Controller 如何接收以 GET 方式傳遞過來的參數(shù)。

一、直接在請求路徑中

(1)、假設請求地址是如下這種 RESTful 風格,Springboot 這個參數(shù)值直接放在路徑里面

http://localhost:8080/hello/Springboot

(2)、Controller 定義,如下:

@RestController
public class HelloController {
    @GetMapping("/hello/{name}")
    public String hello(@PathVariable("name") String name){
 
        return "你好," + name + " !";
    }
}

二、參數(shù)跟在 ? 號后面

1,獲取參數(shù)的基本方法

(1)假設請求地址是如下這種傳統(tǒng)方式,參數(shù)跟在問號后面:

http://localhost:8080/hello?name=Springboot

(2)Controller 定義如下所示:

@RestController
public class HelloController {
    @GetMapping("/hello")
    public String hello(@RequestParam("name") String name){
 
        return "你好," + name + " !";
    }
}

可以把在注解 @RequestParam 添加  required = false 設置參數(shù)為非必輸項
可以把在注解 @RequestParam 添加  defaultValue 參數(shù) 設置默認值。

2、使用 map 來接收參數(shù)

(1)Controller 還可以直接使用 map 來接收所有的請求參數(shù):

@RestController
public class HelloController {
    @GetMapping("/hello")
    public String hello(@RequestParam Map<String, Object> map){
 
        return "圖書: " + map.get("name") +  " 的作者為: " + map.get("author");
    }
}

(2)、結(jié)果如下所示:

3、接收一個集合

(1)、Controller 定義接收 數(shù)組或者List的方法,如下:

@RestController
public class HelloController {
 
    @GetMapping("/array")
    public String array(@RequestParam("name") String[] names){
 
        System.out.println("我是數(shù)組接收的參數(shù):" + Arrays.toString(names));
 
        return "我是數(shù)組接收的參數(shù):" + Arrays.toString(names);
    }
 
    @GetMapping("/list")
    public String list(@RequestParam("name")List<String> names){
        System.out.println("我是List接收的參數(shù):" + names);
        return "我是List接收的參數(shù):" + names.toString();
    }
 
}

(2)、測試結(jié)果

4、通過對象接收參數(shù)

如果一個 get 請求的參數(shù)太多,我們構(gòu)造一個對象來簡化參數(shù)的接收方式。

(1)、定義一個基本對象Book 和 Controller

public class Book {
    private String name;
    private String author;
    private Double price;
   // 省略 getter setter 方法
}
@RestController
public class BookController {
    @GetMapping("/book")
    public Book book(Book book){
        System.out.println("接收到的參數(shù)為:" + book);
        return  book;
    }
}

 (2)、基本用法:

(3)、構(gòu)造多個對象來接收參數(shù),代碼如下所示:

public class User {
    private String username;
    private String password;
    // 省略 getter setter 方法
}
@RestController
public class BookController {
    @GetMapping("/book")
    public Book book(Book book, User user){
        System.out.println("接收到的參數(shù)為:" + book);
        System.out.println("接收到的參數(shù)為:" + user);
        return  book;
    }
}

訪問:

輸出結(jié)果:

(4)、指定前綴。

如果在多個對象參數(shù)的方法中,對象之間存在相同的 屬性時 可以結(jié)合  @InitBinder 指定前綴的方式處理。如下所示,Book 對象和 Author 對象中都存在 name 屬性。

    除了在 Controller 里單獨定義預處理方法外,我們還可以通過 @ControllerAdvice 結(jié)合 @InitBinder 來定義全局的參數(shù)預處理方法,方便各個 Controller 使用

public class Book {
    private String name;
    private String author;
}
 
 
public class Author {
    private String name;
    public String getName() {
        return name;
    }
 
    public void setName(String name) {
        this.name = name;
    }
 
    @Override
    public String toString() {
        return "Author{" +
                "name='" + name + '\'' +
                '}';
    }
}
@RestController
public class BookController {
    @GetMapping("/book")
    public Book book(@ModelAttribute("b") Book book, @ModelAttribute("a") Author author){
        System.out.println("接收到的參數(shù)為:" + book);
        System.out.println("接收到的參數(shù)為:" + author);
        return  book;
    }
 
    // 添加  InitBinder 指定 前綴 b
    @InitBinder("b")
    private void initBinderB(WebDataBinder binder) {
        binder.setFieldDefaultPrefix("b.");
    }
 
    // 添加  InitBinder 指定 前綴 a
    @InitBinder("a")
    private void initBinderA(WebDataBinder binder) {
        binder.setFieldDefaultPrefix("a.");
    }
}

訪問:

結(jié)果:

總結(jié)

到此這篇關于SpringBoot如何獲取Get請求參數(shù)的文章就介紹到這了,更多相關SpringBoot獲取Get請求參數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 完美解決Java中的線程安全問題

    完美解決Java中的線程安全問題

    下面小編就為大家?guī)硪黄昝澜鉀QJava中的線程安全問題。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-08-08
  • Java利用反射對list對象做過濾

    Java利用反射對list對象做過濾

    這篇文章主要介紹了Java利用反射對list對象做過濾,但是使用反射對效率有影響,但在一些特殊情況也有一定的參考價值,需要的小伙伴可以參考一下
    2022-03-03
  • Java 的抽象類原理與用法分析

    Java 的抽象類原理與用法分析

    這篇文章主要介紹了Java 的抽象類原理與用法,結(jié)合實例形式分析了java抽象類與接口的相關概念、原理、使用方法及操作注意事項,需要的朋友可以參考下
    2019-12-12
  • Spring AOP之@Around,@AfterReturning使用、切不進去的解決方案

    Spring AOP之@Around,@AfterReturning使用、切不進去的解決方案

    這篇文章主要介紹了Spring AOP之@Around,@AfterReturning使用、切不進去的解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • redis與spring整合使用的步驟實例教程

    redis與spring整合使用的步驟實例教程

    這篇文章主要給大家介紹了關于redis與spring整合使用的相關資料,文中通過示例代碼將實現(xiàn)的步驟一步步介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧。
    2018-03-03
  • 實例講解Java讀取一般文本文件和word文檔的方法

    實例講解Java讀取一般文本文件和word文檔的方法

    讀取一般文本文件很好辦,調(diào)用Java自帶的io包里的類即可,富文本的doc文件我們可以用Apache的poi項目中的WordExtractor,這里我們一起來以實例講解Java讀取一般文本文件和word文檔的方法
    2016-06-06
  • springboot 如何重定向redirect 并隱藏參數(shù)

    springboot 如何重定向redirect 并隱藏參數(shù)

    這篇文章主要介紹了springboot 如何重定向redirect 并隱藏參數(shù)的操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • JAVA提高第九篇 集合體系

    JAVA提高第九篇 集合體系

    這篇文章主要為大家詳細介紹了JAVA提高第九篇集合體系的相關資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-10-10
  • Spring?IOC?xml方式進行工廠Bean操作詳解

    Spring?IOC?xml方式進行工廠Bean操作詳解

    這篇文章主要介紹了Spring?IOC?xml方式進行工廠Bean操作,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習吧
    2023-01-01
  • SpringBoot?ScheduledTaskRegistrar解決動態(tài)定時任務思路詳解

    SpringBoot?ScheduledTaskRegistrar解決動態(tài)定時任務思路詳解

    本文將從問題出發(fā),詳細介紹ScheduledTaskRegistrar類是如何解決動態(tài)調(diào)整定時任務的思路,并給出關鍵的代碼示例,幫助大家快速地上手學習
    2023-02-02

最新評論

朔州市| 鹿泉市| 内黄县| 彩票| 衢州市| 兴文县| 沙河市| 龙岩市| 雷波县| 平罗县| 黑山县| 庄河市| 郎溪县| 乐平市| 齐齐哈尔市| 新昌县| 谷城县| 德阳市| 和静县| 博客| 兴安盟| 五台县| 神池县| 广灵县| 肇东市| 松阳县| 辽中县| 定结县| 吉首市| 池州市| 买车| 金堂县| 湖北省| 黎川县| 克东县| 明水县| 开江县| 大洼县| 大关县| 达拉特旗| 内丘县|