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

SpringBoot接值實(shí)現(xiàn)方法詳解

 更新時(shí)間:2023年05月12日 11:22:19   作者:春哥的魔法書  
這篇文章主要介紹了SpringBoot接值實(shí)現(xiàn)方法,SpringBoot接值是指在SpringBoot應(yīng)用程序中接收請(qǐng)求參數(shù),從HTTP請(qǐng)求中獲取參數(shù),并將其綁定到Java對(duì)象中進(jìn)行處理的過(guò)程,感興趣想要詳細(xì)了解可以參考下文

接值

通過(guò)方法的參數(shù)來(lái)接收請(qǐng)求傳來(lái)值

請(qǐng)求時(shí)傳值的方式有三種方式 :

  • URL?name=value
  • form表單
  • Ajax異步傳值

接收傳來(lái)的值有三類 :

  • 單一值
  • 對(duì)象
  • 數(shù)組

傳值

URL?傳值

URL?標(biāo)識(shí)1=值1&標(biāo)識(shí)2=值2

URL后面使用 ? 連接參數(shù), 每組參數(shù)使用 = 連接標(biāo)識(shí)與值, 多組參數(shù)使用 & 連接

以 超鏈接為例 , 通過(guò)URL? 進(jìn)行傳值

<a href="/test/test04?name=wang&age=12" rel="external nofollow" >test04</a> <br>

form表單傳值

<input name="標(biāo)識(shí)" value="值">

在表單中 可以 , , 等標(biāo)簽傳遞值, name屬性 是傳值的標(biāo)識(shí) , value屬性 是要傳遞的值

以 表單為例, 進(jìn)行傳值

    <form action="/test/test04" method="post" >
        <input name="name" value="wang"> 
        <input name="age" value="12">
        <input type="submit" value="提交">
    </form>

Ajax異步傳值

var data = { "標(biāo)識(shí)1" : "值1", "標(biāo)識(shí)2" : "值2" }

將 要傳遞的信息封裝成 JSON 結(jié)構(gòu), 通過(guò) Ajax異步進(jìn)行傳值

這里使用 JQuery 的 Ajax 寫法 , 修改 fn 函數(shù)

    function fn() {
        var url = "/test/test04";
        var data = {"name":"wang", "age":12};
        $.ajax({
            async: true,
            type: "POST",
            url: url,
            data: data
        })
    }

接單一值

通過(guò) 方法的參數(shù)接單一結(jié)構(gòu)的值

在Controller類中增加 test04 方法

    @RequestMapping("/test/test04")
    public String test04(String name , Integer age){
        System.out.println("name = " + name);
        System.out.println("age = " + age);
        System.out.println(" controller 中的測(cè)試方法 test 04 ");
        return "ref";
    }

在頁(yè)面上分別點(diǎn)擊 , 進(jìn)行傳值測(cè)試 在idea的控制臺(tái)都可以看到接收到的值

注意 要測(cè)試 Ajax 頁(yè)面要導(dǎo)入 JQuery的依賴 js 包

@RequestParam注解

在不使用 @RequestParam注解 的情況要 , 方法形式參數(shù)的名 要與傳值的標(biāo)識(shí)對(duì)應(yīng)

使用@RequestParam注解后, 可以通過(guò)注解與傳值的標(biāo)識(shí)對(duì)應(yīng), 而方法的形式參數(shù)名就不受限制

修改 test04方法為 name參數(shù)增加 @RequestParam注解 , 并通過(guò)注解與傳值標(biāo)識(shí)匹配

    @RequestMapping("/test/test04")
    public String test04(@RequestParam("name") String n , Integer age){
        System.out.println("name = " + n);
        System.out.println("age = " + age);
        System.out.println(" controller 中的測(cè)試方法 test 04 ");
        return "ref";
    }

現(xiàn)在測(cè)試依然能得到 打印結(jié)果

@RequestParam注解屬性

但 使用了@RequestParam注解后就必須傳遞對(duì)應(yīng)的參數(shù)

當(dāng)然也可以通過(guò)設(shè)置@RequestParam注解的屬性進(jìn)行調(diào)整

將頁(yè)面表單中的 注釋掉

    <form action="/test/test04" method="post" >
<!--        <input name="name" value="wang">-->
        <input name="age" value="12">
        <input type="submit" value="提交">
    </form>

再測(cè)試, 會(huì)報(bào) 400 異常

修改 @RequestParam注解的屬性

required : 是否是必須的

defaultValue : 沒(méi)有接到值時(shí), 默認(rèn)設(shè)置的值

    @RequestMapping("/test/test04")
    public String test04(@RequestParam(value = "name", required = false, defaultValue = "hello") String n , Integer age){
        System.out.println("name = " + n);
        System.out.println("age = " + age);
        System.out.println(" controller 中的測(cè)試方法 test 04 ");
        return "ref";
    }

對(duì)象接值

將傳遞信息封裝成實(shí)體類對(duì)象, 通過(guò)實(shí)體類對(duì)象接值

創(chuàng)建實(shí)體類User

創(chuàng)建 entity 包(文件夾) , 在entity包(文件夾)下創(chuàng)建User實(shí)體類

User實(shí)體類

package com.yuan.entity;
import lombok.Data;
@Data
public class User {
    private String name;
    private Integer age;
}

增加新的處理方法

添加test05方法, 參數(shù)為 User 類

    @RequestMapping("/test/test05")
    public String test05(User user){
        System.out.println("name = " + user.getName());
        System.out.println("age = " + user.getAge());
        System.out.println(" controller 中的測(cè)試方法 test 05 ");
        return "ref";
    }

修改頁(yè)面并測(cè)試

修改start.html頁(yè)面請(qǐng)求URL

    <a href="/test/test05?name=wang&age=12" rel="external nofollow" >test05</a> <br>
    <form action="/test/test05" method="post" >
        <input name="name" value="wang">
        <input name="age" value="12">
        <input type="submit" value="提交">
    </form>

在瀏覽器發(fā)語(yǔ)法 , 就可以在idea控制臺(tái)看到接收到信息

數(shù)組接值

傳數(shù)組

多個(gè)相同的傳值標(biāo)識(shí), 可以傳遞數(shù)組

修改start.html頁(yè)面

    <a href="/test/test06?ids=1&ids=2&ids=3" rel="external nofollow" >test06</a> <br>
    <form action="/test/test06" method="post" >
        <input name="ids" value="1">
        <input name="ids" value="2">
        <input name="ids" value="3">
        <input type="submit" value="提交">
    </form>

增加接值方法test06并測(cè)試

    @RequestMapping("/test/test06")
    public String test06(Integer[] ids){
        System.out.println("Arrays.toString(ids) = " + Arrays.toString(ids));
        System.out.println(" controller 中的測(cè)試方法 test 06 ");
        return "ref";
    }

Ajax傳數(shù)組一

傳遞 JS數(shù)組結(jié)構(gòu)

修改start.html頁(yè)面

    function fn() {
        var url = "/test/test07";
        // var data = { "ids" : [1, 2, 3] };
        var idss = $("[name=ids]").map(function () {
            return this.value
        }).get()
        var data = {"ids": idss}
        $.ajax({
            async: true,
            type: "POST",
            url: url,
            data: data
        });
    }

添加新的接值方法test07并測(cè)試, 注意這里增加 @RequestParam("ids[]") 注解

    @RequestMapping("/test/test07")
    public String test07(@RequestParam("ids[]") Integer[] ids){
        System.out.println("Arrays.toString(ids) = " + Arrays.toString(ids));
        System.out.println(" controller 中的測(cè)試方法 test 07 ");
        return "ref";
    }

字符串傳數(shù)組

用 “,” 將信息連接成一個(gè)字符串進(jìn)行傳遞

修改start.html頁(yè)面

    <a href="/test/test06?ids=1,2,3" rel="external nofollow" >test06</a> <br>
    <form action="/test/test06" method="post" >
        <input name="ids" value="1,2,3">
        <input type="submit" value="提交">
    </form>

使用接值方法test06并測(cè)試

    @RequestMapping("/test/test06")
    public String test06(Integer[] ids){
        System.out.println("Arrays.toString(ids) = " + Arrays.toString(ids));
        System.out.println(" controller 中的測(cè)試方法 test 06 ");
        return "ref";
    }

Ajax傳數(shù)組二

從 表單中獲取數(shù)據(jù), 組成數(shù)組, 再將數(shù)組使用 ","連接起來(lái)

修改start.html頁(yè)面

    function fn() {
        var url = "/test/test06";
        var idss = $("[name=ids]").map(function () {
            return this.value
        }).get()
        console.log(idss)
        var data = {"ids": idss.join(",")}
        $.ajax({
            async: true,
            type: "POST",
            url: url,
            data: data
        });
    }

使用接值方法test06并測(cè)試

    @RequestMapping("/test/test06")
    public String test06(Integer[] ids){
        System.out.println("Arrays.toString(ids) = " + Arrays.toString(ids));
        System.out.println(" controller 中的測(cè)試方法 test 06 ");
        return "ref";
    }

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

相關(guān)文章

  • Spring靜態(tài)代理和動(dòng)態(tài)代理代碼詳解

    Spring靜態(tài)代理和動(dòng)態(tài)代理代碼詳解

    這篇文章主要介紹了Spring靜態(tài)代理和動(dòng)態(tài)代理代碼詳解,具有一定參考價(jià)值,需要的朋友可以了解下。
    2017-11-11
  • Java 基礎(chǔ)--Arrays工具類詳解

    Java 基礎(chǔ)--Arrays工具類詳解

    這篇文章主要介紹了Java Arrays工具類用法,結(jié)合實(shí)例形式分析了java Arrays工具類針對(duì)數(shù)組元素修改、復(fù)制、排序等操作使用技巧與相關(guān)注意事項(xiàng),需要的朋友可以參考下
    2021-09-09
  • Ubuntu快速安裝jdk的教程

    Ubuntu快速安裝jdk的教程

    這篇文章主要為大家詳細(xì)介紹了Ubuntu快速安裝jdk的教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-04-04
  • 關(guān)于dubbo?自定義線程池的問(wèn)題

    關(guān)于dubbo?自定義線程池的問(wèn)題

    在日常開發(fā)中,線程池幾乎涉及到了所有的開發(fā)框架,像我們熟悉的JDK線程池,druid連接線程池等等,線程池的使用,大大降低了人工維護(hù)線程的成本,而且提升了線程資源在使用中的效率,本文給大家介紹dubbo?自定義線程池的相關(guān)知識(shí),感興趣的朋友一起看看吧
    2022-04-04
  • Struts2攔截器登錄驗(yàn)證實(shí)例

    Struts2攔截器登錄驗(yàn)證實(shí)例

    本篇文章主要介紹了Struts2攔截器登錄驗(yàn)證實(shí)例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-05-05
  • Java8新特性lambda表達(dá)式有什么用(用法實(shí)例)

    Java8新特性lambda表達(dá)式有什么用(用法實(shí)例)

    這篇文章主要介紹了Java8新特性lambda表達(dá)式有什么用,著重以實(shí)例講解lambda表達(dá)式,需要的朋友可以參考下
    2014-06-06
  • Java日常練習(xí)題,每天進(jìn)步一點(diǎn)點(diǎn)(10)

    Java日常練習(xí)題,每天進(jìn)步一點(diǎn)點(diǎn)(10)

    下面小編就為大家?guī)?lái)一篇Java基礎(chǔ)的幾道練習(xí)題(分享)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧,希望可以幫到你
    2021-07-07
  • Eclipse中配置Maven的圖文教程

    Eclipse中配置Maven的圖文教程

    這篇文章主要介紹了Eclipse中配置Maven的圖文教程,需要的朋友可以參考下
    2020-12-12
  • SpringBoot項(xiàng)目Pom文件的基本配置方式

    SpringBoot項(xiàng)目Pom文件的基本配置方式

    這篇文章主要介紹了SpringBoot項(xiàng)目Pom文件的基本配置方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • springboot整合mybatis-plus逆向工程的實(shí)現(xiàn)

    springboot整合mybatis-plus逆向工程的實(shí)現(xiàn)

    這篇文章主要介紹了springboot整合mybatis-plus逆向工程的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08

最新評(píng)論