SpringBoot接值實現(xiàn)方法詳解
接值
通過方法的參數(shù)來接收請求傳來值
請求時傳值的方式有三種方式 :
- URL?name=value
- form表單
- Ajax異步傳值
接收傳來的值有三類 :
- 單一值
- 對象
- 數(shù)組
傳值
URL?傳值
URL?標(biāo)識1=值1&標(biāo)識2=值2
URL后面使用 ? 連接參數(shù), 每組參數(shù)使用 = 連接標(biāo)識與值, 多組參數(shù)使用 & 連接
以 超鏈接為例 , 通過URL? 進(jìn)行傳值
<a href="/test/test04?name=wang&age=12" rel="external nofollow" >test04</a> <br>
form表單傳值
<input name="標(biāo)識" value="值">
在表單中 可以 , , 等標(biāo)簽傳遞值, name屬性 是傳值的標(biāo)識 , 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)識1" : "值1", "標(biāo)識2" : "值2" }
將 要傳遞的信息封裝成 JSON 結(jié)構(gòu), 通過 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
})
}接單一值
通過 方法的參數(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 中的測試方法 test 04 ");
return "ref";
}在頁面上分別點擊 , 進(jìn)行傳值測試 在idea的控制臺都可以看到接收到的值
注意 要測試 Ajax 頁面要導(dǎo)入 JQuery的依賴 js 包
@RequestParam注解
在不使用 @RequestParam注解 的情況要 , 方法形式參數(shù)的名 要與傳值的標(biāo)識對應(yīng)
使用@RequestParam注解后, 可以通過注解與傳值的標(biāo)識對應(yīng), 而方法的形式參數(shù)名就不受限制
修改 test04方法為 name參數(shù)增加 @RequestParam注解 , 并通過注解與傳值標(biāo)識匹配
@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 中的測試方法 test 04 ");
return "ref";
}現(xiàn)在測試依然能得到 打印結(jié)果
@RequestParam注解屬性
但 使用了@RequestParam注解后就必須傳遞對應(yīng)的參數(shù)
當(dāng)然也可以通過設(shè)置@RequestParam注解的屬性進(jìn)行調(diào)整
將頁面表單中的 注釋掉
<form action="/test/test04" method="post" >
<!-- <input name="name" value="wang">-->
<input name="age" value="12">
<input type="submit" value="提交">
</form>再測試, 會報 400 異常
修改 @RequestParam注解的屬性
required : 是否是必須的
defaultValue : 沒有接到值時, 默認(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 中的測試方法 test 04 ");
return "ref";
}對象接值
將傳遞信息封裝成實體類對象, 通過實體類對象接值
創(chuàng)建實體類User
創(chuàng)建 entity 包(文件夾) , 在entity包(文件夾)下創(chuàng)建User實體類

User實體類
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 中的測試方法 test 05 ");
return "ref";
}修改頁面并測試
修改start.html頁面請求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ā)語法 , 就可以在idea控制臺看到接收到信息
數(shù)組接值
傳數(shù)組
多個相同的傳值標(biāo)識, 可以傳遞數(shù)組
修改start.html頁面
<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并測試
@RequestMapping("/test/test06")
public String test06(Integer[] ids){
System.out.println("Arrays.toString(ids) = " + Arrays.toString(ids));
System.out.println(" controller 中的測試方法 test 06 ");
return "ref";
}Ajax傳數(shù)組一
傳遞 JS數(shù)組結(jié)構(gòu)
修改start.html頁面
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并測試, 注意這里增加 @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 中的測試方法 test 07 ");
return "ref";
}字符串傳數(shù)組
用 “,” 將信息連接成一個字符串進(jìn)行傳遞
修改start.html頁面
<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并測試
@RequestMapping("/test/test06")
public String test06(Integer[] ids){
System.out.println("Arrays.toString(ids) = " + Arrays.toString(ids));
System.out.println(" controller 中的測試方法 test 06 ");
return "ref";
}Ajax傳數(shù)組二
從 表單中獲取數(shù)據(jù), 組成數(shù)組, 再將數(shù)組使用 ","連接起來
修改start.html頁面
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并測試
@RequestMapping("/test/test06")
public String test06(Integer[] ids){
System.out.println("Arrays.toString(ids) = " + Arrays.toString(ids));
System.out.println(" controller 中的測試方法 test 06 ");
return "ref";
}到此這篇關(guān)于SpringBoot接值實現(xiàn)方法詳解的文章就介紹到這了,更多相關(guān)SpringBoot接值內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java8新特性lambda表達(dá)式有什么用(用法實例)
這篇文章主要介紹了Java8新特性lambda表達(dá)式有什么用,著重以實例講解lambda表達(dá)式,需要的朋友可以參考下2014-06-06
Java日常練習(xí)題,每天進(jìn)步一點點(10)
下面小編就為大家?guī)硪黄狫ava基礎(chǔ)的幾道練習(xí)題(分享)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧,希望可以幫到你2021-07-07
springboot整合mybatis-plus逆向工程的實現(xiàn)
這篇文章主要介紹了springboot整合mybatis-plus逆向工程的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-08-08

