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

springboot項目中后端接收前端傳參的方法示例詳解

 更新時間:2023年06月13日 10:43:01   作者:Bruce1801  
這篇文章主要介紹了springboot項目中一些后端接收前端傳參的方法,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下

先創(chuàng)建一個springboot項目,并在pom文件中添加web依賴:

<dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-web</artifactId>
</dependency>

創(chuàng)建user對象:

public class User {
    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 "User{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
}

創(chuàng)建一個controller:

@RestController
@RequestMapping("/store")
public class TestController {
}

1、java方法入?yún)⒗锩媸裁醋⒔舛紱]有

/**
     * 第一種:java方法入?yún)⒗锩媸裁醋⒔舛紱]有
     * */
    @RequestMapping("/noAnnotation")
    public String noAnnotation(User user){
        return user.toString();
    }

結(jié)果

適用于:請求參數(shù)比較少
缺點:請求參數(shù)比較多的時候,可能會丟參數(shù),因為get請求有長度限制。

如果參數(shù)重復(fù)了,比如:http://localhost:8080/store/noAnnotation?age=18&age=20&name=yuanhaoz,參數(shù)中age有兩個,一個等于18,另一個等于20,如果是int類型的則取最先聲明的那個;如果是String類型的,則會疊加

2、@PathVariable這種方式接收URL路徑參數(shù)作為參數(shù)

/**
     * 第二種:不使用?&來拼接參數(shù)
     * */
    @RequestMapping("/havaPathVariable/{name}/{age}")
    public String havaPathVariable(@PathVariable(value = "name")String name, @PathVariable(value = "age")int age ){
        return name+age;
    }

@PathVariable根據(jù)value將url中的參數(shù)取出來

結(jié)果:

適用于:參數(shù)比較少,以及動態(tài)接口情況

如何改成參數(shù)非必傳:
不僅要在@PathVariable()中加required = false,還要設(shè)置多個url path,這是因為url要求帶參,屬于REST參數(shù)。

結(jié)果:

如果只設(shè)置required = false話,是無法請求的。

3、@RequestBody這種方式接收前端發(fā)送過來的請求體

/**
     * 第三種:@RequestBody
     * */
    @RequestMapping("/haveRequestBody")
    public String haveRequestBody(@RequestBody User user){
        return user.toString();
    }

結(jié)果:

這個注解會從http請求的body當中拿到j(luò)son,并且反序列化成java對象
適用于:請求參數(shù)非常多(因為body沒有長度限制)
如果參數(shù)重復(fù)了,無論什么類型取聲明的最后一個

解析list怎么寫
body:

controller:

解析嵌套對象怎么寫
body:
在json中的每個對象里添加一個phone對象

創(chuàng)建phone對象(可以根據(jù)json中的phone對象創(chuàng)建所有字段,也可設(shè)置部分字段)

public class Phone {
    private String name;
    private String code;
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getCode() {
        return code;
    }
    public void setCode(String code) {
        this.code = code;
    }
    @Override
    public String toString() {
        return "Phone{" +
                "name='" + name + '\'' +
                ", code='" + code + '\'' +
                '}';
    }
}

User中要添加與json中對應(yīng)的對象,才會將json中的嵌套對象解析出來。
在user對象中添加phone,并修改tostring方法;

controller:

結(jié)果:

4、RestFul風格 概念

Restful就是一個資源定位及資源操作的風格。不是標準也不是協(xié)議,只是一種風格?;谶@個風格設(shè)計的軟件可以更簡潔,更有層次,更易于實現(xiàn)緩存等機制。

功能

資源:互聯(lián)網(wǎng)所有的事物都可以被抽象為資源
資源操作:使用POST、DELETE、PUT、GET,使用不同方法對資源進行操作。
分別對應(yīng) 添加、 刪除、修改、查詢。
傳統(tǒng)方式操作資源:通過不同的參數(shù)來實現(xiàn)不同的效果!方法單一,post 和 get
http://127.0.0.1/item/queryItem.action?id=1 查詢,GET
http://127.0.0.1/item/saveItem.action 新增,POST
http://127.0.0.1/item/updateItem.action 更新,POST
http://127.0.0.1/item/deleteItem.action?id=1 刪除,GET或POST
使用RestFul操作資源:可以通過不同的請求方式來實現(xiàn)不同的效果!如下:請求地址一樣,但是功能可以不同!
http://127.0.0.1/item/1 查詢,GET
http://127.0.0.1/item 新增,POST
http://127.0.0.1/item 更新,PUT
http://127.0.0.1/item/1 刪除,DELETE
相比于傳統(tǒng)方式使用鏈接來訪問請求,Resful可以通過使用通過不同的請求方式來達到不同的效果

基本使用

    @RequestMapping("/noAnnotation",method = {RequestMethod.GET})
    public String noAnnotation(User user){
        return user.toString();
    }

也可通過將RequestMapping替換為:

@GetMapping
@PostMapping
@PutMapping
@DeleteMapping
@PatchMapping

例如:

    @GetMapping("/noAnnotation")
    public String noAnnotation(User user){
        return user.toString();
    }

注:所有的地址欄請求默認都會是 HTTP GET 類型的。

到此這篇關(guān)于springboot項目中一些后端接收前端傳參的方法的文章就介紹到這了,更多相關(guān)springboot后端接收前端傳參內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • FreeMarker配置(Configuration)

    FreeMarker配置(Configuration)

    所有與該configuration 對象關(guān)聯(lián)的模版實例都就可以通過獲得to_upper 轉(zhuǎn)換器,company 來獲得字符串,因此你不需要再一次次的往root 中添加這些變量了。如果你往root 添加同名的變量,那么你新添加的變量將會覆蓋之前的共享變量。
    2016-04-04
  • 使用spring boot開發(fā)時java對象和Json對象轉(zhuǎn)換的問題

    使用spring boot開發(fā)時java對象和Json對象轉(zhuǎn)換的問題

    這篇文章主要介紹了使用spring boot開發(fā)時java對象和Json對象轉(zhuǎn)換的問題,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-03-03
  • Hibernate Validation自定義注解校驗的實現(xiàn)

    Hibernate Validation自定義注解校驗的實現(xiàn)

    這篇文章主要介紹了Hibernate Validation自定義注解校驗的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-04-04
  • springboot實現(xiàn)token驗證登陸狀態(tài)的示例代碼

    springboot實現(xiàn)token驗證登陸狀態(tài)的示例代碼

    本文主要介紹了spring?boot?實現(xiàn)token驗證登陸狀態(tài),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2024-07-07
  • java必學必會之網(wǎng)絡(luò)編程

    java必學必會之網(wǎng)絡(luò)編程

    java必學必會之網(wǎng)絡(luò)編程,學習了解java網(wǎng)絡(luò)編程、網(wǎng)絡(luò)通信協(xié)議、TCP協(xié)議和UDP協(xié)議,對各個協(xié)議進行深入學習,做到必學必會
    2015-12-12
  • Java中對list map根據(jù)map某個key值進行排序的方法

    Java中對list map根據(jù)map某個key值進行排序的方法

    今天小編就為大家分享一篇Java中對list map根據(jù)map某個key值進行排序的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-07-07
  • Java正則表達式工具方法匯總

    Java正則表達式工具方法匯總

    這篇文章主要介紹了Java正則表達式工具方法匯總,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-11-11
  • Java實現(xiàn)發(fā)起HTTP請求的四種方法實現(xiàn)與適用場景

    Java實現(xiàn)發(fā)起HTTP請求的四種方法實現(xiàn)與適用場景

    Java中發(fā)起HTTP請求有多種方式,包括原生庫、第三方庫及現(xiàn)代API,以下是常見的幾種實現(xiàn)方法,本文介紹了它們的具體實現(xiàn)代碼以及性能適用場景,感興趣的可以了解下
    2025-06-06
  • Java實現(xiàn)圖片與Base64編碼互轉(zhuǎn)

    Java實現(xiàn)圖片與Base64編碼互轉(zhuǎn)

    這篇文章主要介紹了Java中實現(xiàn)圖片與Base64編碼互轉(zhuǎn)的方法,比較實用,需要的朋友可以參考下。
    2016-06-06
  • Java Integer對象的比較方式

    Java Integer對象的比較方式

    這篇文章主要介紹了Java Integer對象的比較方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-09-09

最新評論

阳高县| 衡南县| 盐边县| 河曲县| 云梦县| 定边县| 灵山县| 铅山县| 酒泉市| 莱芜市| 凤山市| 崇义县| 微山县| 邛崃市| 海南省| 临颍县| 敦煌市| 四川省| 松江区| 鹿邑县| 铜鼓县| 祥云县| 荥阳市| 合阳县| 泰州市| 瑞丽市| 密山市| 金秀| 商南县| 高陵县| 台南市| 五峰| 华池县| 长沙县| 合肥市| 怀安县| 梁平县| 濮阳市| 阳高县| 溧阳市| 古丈县|