Spring?Boot中常用的參數(shù)傳遞注解示例詳解
Spring Boot中常用的參數(shù)傳遞注解
@RequestParam:用于將請(qǐng)求參數(shù)綁定到控制器處理方法的參數(shù)上,適用于GET請(qǐng)求。@PathVariable:用于獲取請(qǐng)求URL中的動(dòng)態(tài)參數(shù),適用于RESTful風(fēng)格的URL。@RequestBody:用于將請(qǐng)求體中的JSON字符串綁定到控制器處理方法的參數(shù)上。@RequestHeader:用于將請(qǐng)求頭中的信息綁定到控制器處理方法的參數(shù)上。@ModelAttribute:用于將請(qǐng)求參數(shù)綁定到一個(gè)對(duì)象上,適用于POST請(qǐng)求。@RequestAttribute:用于將請(qǐng)求屬性綁定到控制器處理方法的參數(shù)上。
當(dāng)你使用了@Param注解來聲明參數(shù)時(shí),如果使用 #{} 或 ${} 的方式都可以。如果不使用@Param注解來聲明參數(shù)時(shí),必須使用 #{}方式。如果使用 ${} 的方式,會(huì)報(bào)錯(cuò)。
示例代碼如下:
// 使用@RequestParam注解傳參
@GetMapping("/user")
public String getUser(@RequestParam("id") Long id) {
// 處理邏輯
}
// 使用@PathVariable注解傳參
@GetMapping("/user/{id}")
public String getUser(@PathVariable("id") Long id) {
// 處理邏輯
}
// 使用@RequestBody注解傳參
@PostMapping("/user")
public String addUser(@RequestBody User user) {
// 處理邏輯
}
// 使用@RequestHeader注解傳參
@GetMapping("/user")
public String getUser(@RequestHeader("User-Agent") String userAgent) {
// 處理邏輯
}
// 使用@ModelAttribute注解傳參
@PostMapping("/user")
public String addUser(@ModelAttribute User user) {
// 處理邏輯
}
// 使用@RequestAttribute注解傳參
@GetMapping("/user")
public String getUser(@RequestAttribute("id") Long id) {
// 處理邏輯
}springboot中的參數(shù)傳遞
1、前端傳遞到后端
1-1、js
function add(){
var obj = {};
obj.parame_empname = $("#EMPNAME").val();
if (obj.parame_empname == "") {
alert("姓名不能為空");
return;
}
$.ajax({
type: "post", //定義ajax請(qǐng)求類型
url: /add,
data: JSON.stringify(obj),
contentType: "application/json;charset=utf-8", //請(qǐng)求頭
dataType: "text", //返回?cái)?shù)據(jù)類型
success: function(result) {
alert(result);
}
})
}1-2、controller
@RequestMapping(value = "/add")
@ResponseBody
public String addCommit(@RequestBody JSONObject req) {
String info = "Success:提交成功";
String empname = req.getString("parame_empname");
service.add(empname);// 插入數(shù)據(jù)庫
return info;
}2、后端傳遞到mapper(sql)
2-1、controller
service.add(empname);// 插入數(shù)據(jù)庫
2-2、service
public void addcommit( String username) {
dao.addcommit(username);
}2-3、dao
public void addcommit(@Param("username") String username);2-4、mapper
<insert id="add" parameterType="map">
INSERT INTO TABLE
(USERNAME)
VALUES
(#{username})
</insert>------------------------分割線--------------------------
還有一種動(dòng)態(tài)sql方式
即把#{}改成${}
這樣傳到sql的參數(shù)即使是字符串也不會(huì)帶引號(hào)。
這樣可以實(shí)現(xiàn)動(dòng)態(tài)拼接sql。
但這樣做有一個(gè)弊端:可能會(huì)被惡意利用,進(jìn)行sql注入。
到此這篇關(guān)于Spring Boot中常用的參數(shù)傳遞注解的文章就介紹到這了,更多相關(guān)Spring Boot參數(shù)傳遞注解內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java?深入理解創(chuàng)建型設(shè)計(jì)模式之原型模式
原型(Prototype)模式的定義如下:用一個(gè)已經(jīng)創(chuàng)建的實(shí)例作為原型,通過復(fù)制該原型對(duì)象來創(chuàng)建一個(gè)和原型相同或相似的新對(duì)象。在這里,原型實(shí)例指定了要?jiǎng)?chuàng)建的對(duì)象的種類。用這種方式創(chuàng)建對(duì)象非常高效,根本無須知道對(duì)象創(chuàng)建的細(xì)節(jié)2022-02-02
mybatis-plus 擴(kuò)展批量新增的實(shí)現(xiàn)
本文主要介紹了mybatis-plus 擴(kuò)展批量新增的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-01-01
spring boot的健康檢查HealthIndicators實(shí)戰(zhàn)
這篇文章主要介紹了spring boot的健康檢查HealthIndicators實(shí)戰(zhàn),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-10-10
SpringSecurity實(shí)現(xiàn)自定義數(shù)據(jù)源實(shí)戰(zhàn)指南
本文給大家介紹SpringSecurity實(shí)現(xiàn)自定義數(shù)據(jù)源的相關(guān)知識(shí),本文通過實(shí)例代碼給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧2025-09-09
Spring?Boot如何在加載bean時(shí)優(yōu)先選擇我
這篇文章主要介紹了Spring?Boot如何在加載bean時(shí)優(yōu)先選擇我,在?Spring?Boot?應(yīng)用程序中,我們可以采取三種方式實(shí)現(xiàn)自己的?bean?優(yōu)先加載,本文通過實(shí)例代碼給大家詳細(xì)講解,需要的朋友可以參考下2023-03-03

