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

Springboot傳參詳解

 更新時(shí)間:2023年11月21日 15:14:08   作者:編程界小明哥  
這篇文章主要介紹了Springboot傳參的相關(guān)知識(shí),本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧

測(cè)試工具 IDEA、postman

一、@RequestParam

針對(duì)QueryString參數(shù)傳遞,在請(qǐng)求URL中直接拼接請(qǐng)求參數(shù),如URL?param1=value1& param2=value2

1.傳遞基本類型參數(shù)

在接收的方法中用@RequestParam注解修飾,指定前端傳遞的參數(shù)名稱

@RequestMapping("QueryStringTest1")
public String QueryStringTest1(@RequestParam("id") String id,@RequestParam("name") String name){
    return "id is "+ id+",name is "+ name;
}

Postman 中調(diào)用

如果傳遞的參數(shù)和接收的參數(shù)名一致,甚至可以省略相關(guān)配置

省略1

@RequestParam(“id”) 中的參數(shù)名id被省略

@RequestMapping("QueryStringTest2")
public String QueryStringTest2(@RequestParam String id,@RequestParam String name){
    return "id is "+ id+",name is "+ name;
}

注意:因?yàn)橛蠷equestParam注解的存在,所以傳參必須包含所有使用RequestParam注解的接收參數(shù),否則會(huì)報(bào)錯(cuò)(允許傳空,但是必須包含參數(shù));
可以使用@RequestParam(value = “id”,required = false) 的方式,讓id未傳也可以。

省略2

@RequestParam 注解直接被省略

@RequestMapping("QueryStringTest3")
public String QueryStringTest3(String id, String name){
    return "id is "+ id+",name is "+ name;
}

允許其中的參數(shù)不傳,不會(huì)報(bào)錯(cuò),但取值為null,比如name不傳

傳參和入?yún)⒚灰粯拥那闆r

@RequestMapping("QueryStringTest4")
public String QueryStringTest4(@RequestParam("id") String myId,@RequestParam("name") String myName){
   return "myId is "+ myId+",myName is "+ myName;
}

2.傳遞對(duì)象類型參數(shù)

定義一個(gè)對(duì)象,屬性名稱和前端傳遞的參數(shù)名稱一致即可

 @RequestMapping("objectTest1")
 public String objectTest1(User user){
     return "user.id is "+ user.getId()+",user.name is "+ user.getName();
 }

未傳的屬性值為null

加上注解@RequestParam,會(huì)怎么樣呢? 會(huì)報(bào)錯(cuò),不要這樣用


@RequestMapping("objectTest3")
public String objectTest3(@RequestParam User user){
    return "user.id is "+ user.getId()+",user.name is "+ user.getName();
}

3.傳遞數(shù)組、集合類型 數(shù)組

拼接多個(gè)參數(shù)名稱一樣的參數(shù)即可,如URL?param=value1&param=value2&param=value3

@RequestMapping("arrayTest1")
public String[] arrayTest1(@RequestParam String[] name){
    for (String temp:name){
        System.out.println(temp);
    }
    return name;
}

對(duì)同一個(gè)參數(shù)賦多個(gè)值,多個(gè)值之間用,隔開,如URL?param=value1,value2,value3

集合

只舉例List,其他類似

@RequestMapping("listTest1")
public List listTest1(@RequestParam List name){
    for(int i=0;i<name.size();i++){
        System.out.println("list name==="+name.get(i));
    }
    return name;
}

二、@PathVariable

路徑傳參方式是將參數(shù)直接包含在URL路徑中,比如URL/paramValue1/paramValue2

在接口對(duì)應(yīng)的請(qǐng)求路徑中用{參數(shù)名}形式標(biāo)出路徑參數(shù)
在接口方法的參數(shù)上標(biāo)注@PathVariable指名對(duì)應(yīng)路徑參數(shù)的參數(shù)名

1.傳遞基本類型參數(shù)

 @RequestMapping("pathTest1/{id}/{name}")
 public String pathTest1(@PathVariable("id") String id, @PathVariable("name") String name){
     return "id is "+ id+",name is "+ name;
 }

能省略這個(gè)注解嗎?我的結(jié)論是不可以,請(qǐng)看下面

@RequestMapping("pathTest2/{id}/{name}")
public String pathTest2(String id,String name){
    return "id is "+ id+",name is "+ name;
}

2.傳遞數(shù)組、集合類型 數(shù)組

@RequestMapping("pathArrayTest1/{name}")
public String[] pathArrayTest1(@PathVariable("name") String[] names){
    for (String name:names){
        System.out.println("array name:"+name);
    }
    return names;
}

集合

@RequestMapping("pathListTest1/{name}")
public List pathListTest1(@PathVariable("name") List names) {
    for (int i=0;i<names.size();i++) {
        System.out.println("list name:" + names.get(i));
    }
    return names;
}

文件

// MultipartFile接收
@PostMapping("upload")
public String uploadFile(@RequestParam("file") MultipartFile myFile){
    return "type:"+myFile.getContentType()
            +" fileName:"+myFile.getOriginalFilename()
            +" size:"+myFile.getSize();
}

測(cè)試的注意點(diǎn)

  • 用post
  • 用Body的form-data
  • 參數(shù)類型選擇File 而不是默認(rèn)的Text

三、@RequestBody

針對(duì)body表單傳參,RequestBody只能有一個(gè)

1.傳遞基本類型參數(shù)

@RequestMapping("bodyTest1")
public String bodyTest1(@RequestBody String name){
   return "name is:"+name;
}

2. 傳遞對(duì)象類型參數(shù)

比如User 對(duì)象

@RequestMapping("bodyTest2")
public String bodyTest2(@RequestBody User user){
    return "name is:"+user.getName() + " age is:"+user.getAge();
}

3. 傳遞數(shù)組、集合類型

數(shù)組

@RequestMapping("bodyTest3")
public String bodyTest3(@RequestBody String[] users){
    return Arrays.asList(users).toString();
}

集合

User對(duì)象

@RequestMapping("bodyTest4")
public String bodyTest4(@RequestBody List<User> users){
    return users.toString();
}

String類型

@RequestMapping("bodyTest5")
public String bodyTest5(@RequestBody List<String> users){
    return users.toString();
}

*Json對(duì)象

添加依賴

<dependency>
	<groupId>com.alibaba</groupId>
	<artifactId>fastjson</artifactId>
	<version>1.2.56</version>
</dependency>

后端代碼

@RequestMapping("bodyTest6")
public String bodyTest6(@RequestBody JSONObject user){
    return "name is :"+user.get("name")+
            " age is :"+user.get("age");
}

四、HttpServletRequest

明哥以前經(jīng)常用

@RequestMapping("httpRequest")
public String httpRequest(HttpServletRequest request){
    return "name is :"+request.getParameter("name")+
            " age is :"+request.getParameter("age");
}

或者

五、@PathVariable+@RequestParam混合

@RequestMapping("pathAndParam/{id}")
public String pathAndParam(@PathVariable("id") String id, @RequestParam("name") String name){
    return "id is "+ id+",name is "+ name;
}

六、@PathVariable+@RequestBody混合

@RequestMapping("pathAndBody/{id}")
public String pathAndBody(@PathVariable("id") String id, @RequestBody User user){
    return "id is "+ id+",name is "+ user.getName();
}

七、無注解傳參

@RequestMapping("other")
public String other(User user){
    return "name is:"+user.getName() + " age is:"+user.getAge();
}

小結(jié)

這節(jié)總結(jié)了“ Springboot傳參詳解 ”,希望能對(duì)大家有所幫助

到此這篇關(guān)于Springboot傳參詳解的文章就介紹到這了,更多相關(guān)Springboot傳參內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Spring Boot Web 靜態(tài)文件緩存處理的方法

    Spring Boot Web 靜態(tài)文件緩存處理的方法

    本篇文章主要介紹了Spring Boot Web 靜態(tài)文件緩存處理的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-02-02
  • Java程序員容易犯的10大低級(jí)錯(cuò)誤

    Java程序員容易犯的10大低級(jí)錯(cuò)誤

    這篇文章主要介紹了Java程序員容易犯的10大低級(jí)錯(cuò)誤,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2018-09-09
  • Spring利用@Validated注解實(shí)現(xiàn)參數(shù)校驗(yàn)詳解

    Spring利用@Validated注解實(shí)現(xiàn)參數(shù)校驗(yàn)詳解

    這篇文章主要為大家詳細(xì)介紹了在?Spring?項(xiàng)目中使用?@Validated?進(jìn)行參數(shù)校驗(yàn)的方法和常見應(yīng)用場(chǎng)景,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-05-05
  • spring與disruptor集成的簡(jiǎn)單示例

    spring與disruptor集成的簡(jiǎn)單示例

    本篇文章主要介紹了spring與disruptor集成的簡(jiǎn)單示例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-02-02
  • 微信小程序支付Jsapi下單Java版保姆級(jí)教程

    微信小程序支付Jsapi下單Java版保姆級(jí)教程

    微信支付作為國(guó)內(nèi)領(lǐng)先的第三方支付平臺(tái),為商戶提供了多樣化的支付解決方案,包括JSAPI支付、APP支付、H5支付、Native支付以及小程序支付,這篇文章主要介紹了微信小程序支付Jsapi下單Java版的相關(guān)資料,需要的朋友可以參考下
    2025-07-07
  • Spring Boot Actuator監(jiān)控器配置及使用解析

    Spring Boot Actuator監(jiān)控器配置及使用解析

    這篇文章主要介紹了Spring Boot Actuator監(jiān)控器配置及使用解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-07-07
  • SpringBoot(十)之郵件服務(wù)

    SpringBoot(十)之郵件服務(wù)

    這篇文章給大家介紹了SpringBoot郵件服務(wù)的相關(guān)知識(shí),此文是使用springboot最新版本1.5.3進(jìn)行開發(fā)的。本文給大家介紹的非常詳細(xì),具有參考借鑒價(jià)值,需要的的朋友參考下吧
    2017-05-05
  • 使用java生成json時(shí)產(chǎn)生棧溢出錯(cuò)誤問題及解決方案

    使用java生成json時(shí)產(chǎn)生棧溢出錯(cuò)誤問題及解決方案

    這篇文章主要介紹了使用java生成json時(shí)產(chǎn)生棧溢出錯(cuò)誤問題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • Java經(jīng)典設(shè)計(jì)模式之模板方法模式定義與用法示例

    Java經(jīng)典設(shè)計(jì)模式之模板方法模式定義與用法示例

    這篇文章主要介紹了Java經(jīng)典設(shè)計(jì)模式之模板方法模式,簡(jiǎn)單說明了模板方法模式的原理、定義,并結(jié)合實(shí)例形式分析了java模板方法模式的具體使用方法,需要的朋友可以參考下
    2017-08-08
  • Java實(shí)現(xiàn)的文件過濾代碼分享(按后輟過濾)

    Java實(shí)現(xiàn)的文件過濾代碼分享(按后輟過濾)

    這篇文章主要介紹了Java實(shí)現(xiàn)的文件過濾代碼分享,本文通過后輟名過濾,代碼寫簡(jiǎn)潔,容易看懂,需要的朋友可以參考下
    2014-07-07

最新評(píng)論

进贤县| 财经| 怀柔区| 加查县| 锦屏县| 武强县| 星子县| 营口市| 太康县| 衡东县| 陇川县| 梁河县| 墨竹工卡县| 介休市| 辽宁省| 淮南市| 获嘉县| 古田县| 平阳县| 克东县| 锡林浩特市| 台安县| 习水县| 南溪县| 隆安县| 永康市| 阿荣旗| 三原县| 清丰县| 东乌珠穆沁旗| 洛浦县| 蓝山县| 嵊泗县| 鄯善县| 德庆县| 侯马市| 凤冈县| 页游| 南澳县| 凤城市| 平阳县|