欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

SpringBoot Controller接收參數(shù)的幾種常用方式

 更新時(shí)間:2023年07月19日 09:03:07   作者:猴猴小扣  
這篇文章主要介紹了SpringBoot Controller接收參數(shù)的幾種常用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

SpringBoot Controller接收參數(shù)的常用方式

在Controller中加入@RestController,效果等于@Controller + @ResponseBody。

1 請(qǐng)求路徑參數(shù)

直接把表單里面的參數(shù)寫進(jìn) Controller 相應(yīng)方法的形參中去,這個(gè)獲取參數(shù)的方法適合get提交,而不適合post提交。

@PathVariable獲取(這個(gè)當(dāng)然不分get和post了,是url提取嘛)

    @RequestMapping("/userInfo/{id}")
    public String userInfo(@PathVariable String id) {
        System.out.println(id);
        return id;
    }

http://localhost:8080/userInfo/142857

@RequestParam獲取查詢參數(shù),如url?id=1428571

  • 當(dāng)請(qǐng)求參數(shù)名與方法形參變量名相同時(shí),可不加@RequestParam注解
  • @RequestParam注解的required屬性默認(rèn)為true,若參數(shù)不是必須傳遞需改為false
    @RequestMapping("/userInfo")
    public String userInfo(@RequestParam(name = "id") String id) {
        System.out.println(id);
        return id;
    }

http://localhost:8080/userInfo?id=12345671

2 實(shí)體參數(shù)

通過建立一個(gè)bean來獲取參數(shù):

package com.example.helloworld.model;
public class User {
    private String id;
    private String name;
    private Notebook notebook;
    User(String id, String name) {
        this.id  = id;
        this.name = name;
        this.notebook = new Notebook();
    }
    public String getName() {
        return name;
    }
}
@RequestMapping("/userInfo")
    public String userInfo(User user) {
        System.out.println(user.getName());
        return user.getName();
    }

http://localhost:8080/problemBook?id=142857&time=2022-01-01 00:00:00

3 日期參數(shù)

http://localhost:8080/problemBook?id=142857&time=2022-01-01 00:00:00

@RequestMapping("/problemBook")
    public String problemBook(String id, @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") LocalDateTime time) {
        System.out.println(id);
        System.out.println(time);
        return "OK";
    }

但“yyyy-MM-dd”就識(shí)別有問題……

4 Json Body參數(shù)

通常用于Post請(qǐng)求。

[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-UC3GsHzo-1685868352014)(【SpringBoot】SpringBoot-Controller接收參數(shù)的常用方式/image-20230604162017983.png)]

使用RequestBody注解。

@PostMapping("/finishProblem")
    public String finishProblem(@RequestBody User user) {
        System.out.println(user.getName());
        return "OK";
    }

也可以使用一個(gè)map接收:

    @PostMapping("/finishProblem")
    public String finishProblem(@RequestBody Map<String, String> params) {
        System.out.println(params.get("uid"));
        System.out.println(params.get("problemId"));
        return "OK";
    }

5 返回結(jié)果

@ResponseBody用于Controller類或者方法上,將方法返回值直接響應(yīng),若返回值類型是實(shí)體對(duì)象或者集合,將轉(zhuǎn)為json格式相應(yīng)。

為了有統(tǒng)一的返回方式,定義統(tǒng)一響應(yīng)結(jié)果Result。

package com.example.helloworld.controller;
/**
 * code response狀態(tài)碼
 * obj 返回給前端的數(shù)據(jù)
 * message 附加信息,說明具體情況
 */
public class Result {
    public int code;
    public String message;
    public Object data;
    public Result(int code, String message, Object data) {
        this.code = code;
        this.message = message;
        this.data = data;
    }
    public static Result success(Object data) {
        return new Result(200, "success", data);
    }
    public static Result success() {
        return new Result(200, "success", null);
    }
    public static Result error(String message) {
        return new Result(404, message, null);
    }
}

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • socket編程時(shí)的發(fā)送與接收數(shù)據(jù)時(shí)的問題解析

    socket編程時(shí)的發(fā)送與接收數(shù)據(jù)時(shí)的問題解析

    這篇文章主要為大家介紹了socket編程時(shí)的發(fā)送與接收數(shù)據(jù)時(shí)的問題解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-06-06
  • Java中的static靜態(tài)變量、靜態(tài)方法超詳細(xì)講解

    Java中的static靜態(tài)變量、靜態(tài)方法超詳細(xì)講解

    Java中的static關(guān)鍵字用于表示靜態(tài)變量和靜態(tài)方法,靜態(tài)變量是類的成員變量,它們屬于類本身,而不是類的實(shí)例,這篇文章主要給大家介紹了關(guān)于Java中static靜態(tài)變量、靜態(tài)方法詳細(xì)講解的相關(guān)資料,需要的朋友可以參考下
    2024-06-06
  • SpringBoot啟動(dòng)參數(shù)的實(shí)現(xiàn)

    SpringBoot啟動(dòng)參數(shù)的實(shí)現(xiàn)

    SpringBoot通過jar文件方式啟動(dòng),配置可以通過啟動(dòng)參數(shù)進(jìn)行覆蓋,本文就來介紹一下SpringBoot啟動(dòng)參數(shù)的實(shí)現(xiàn),感興趣的可以了解一下
    2025-01-01
  • Java常用的八種排序算法與代碼實(shí)現(xiàn)

    Java常用的八種排序算法與代碼實(shí)現(xiàn)

    這篇文章主要給給大家分享Java常用的八種排序算法與代碼實(shí)現(xiàn),下面文章將詳細(xì)介紹整個(gè)實(shí)現(xiàn)過程,感興趣的小伙伙伴可以跟著小編一起來學(xué)習(xí),希望對(duì)你有所幫助
    2021-10-10
  • 基于StringBuilder類中的重要方法(介紹)

    基于StringBuilder類中的重要方法(介紹)

    下面小編就為大家?guī)硪黄赟tringBuilder類中的重要方法(介紹)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-07-07
  • 淺析SpringBoot自動(dòng)化配置原理實(shí)現(xiàn)

    淺析SpringBoot自動(dòng)化配置原理實(shí)現(xiàn)

    這篇文章主要介紹了淺析SpringBoot自動(dòng)化配置原理實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-06-06
  • 使用JAVA實(shí)現(xiàn)http通信詳解

    使用JAVA實(shí)現(xiàn)http通信詳解

    本文給大家匯總介紹了幾種java實(shí)現(xiàn)http通訊的方法,非常的簡(jiǎn)單實(shí)用,有需要的小伙伴可以參考下。
    2015-08-08
  • spring聲明式事務(wù)管理解析

    spring聲明式事務(wù)管理解析

    這篇文章主要為大家詳細(xì)介紹了spring聲明式事務(wù)管理,對(duì)spring事務(wù)管理進(jìn)行深入了解,感興趣的小伙伴們可以參考一下
    2016-10-10
  • ActiveMQ基于zookeeper的主從(levelDB Master/Slave)搭建

    ActiveMQ基于zookeeper的主從(levelDB Master/Slave)搭建

    這篇文章主要介紹了ActiveMQ基于zookeeper的主從levelDB Master/Slave搭建,以及Spring-boot下的使用方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-08-08
  • SpringBoot Mybatis動(dòng)態(tài)數(shù)據(jù)源切換方案實(shí)現(xiàn)過程

    SpringBoot Mybatis動(dòng)態(tài)數(shù)據(jù)源切換方案實(shí)現(xiàn)過程

    這篇文章主要介紹了SpringBoot+Mybatis實(shí)現(xiàn)動(dòng)態(tài)數(shù)據(jù)源切換方案過程,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-04-04

最新評(píng)論