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注解來(lái)聲明參數(shù)時(shí),如果使用 #{} 或 ${} 的方式都可以。如果不使用@Param注解來(lái)聲明參數(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ù)庫(kù) return info; }
2、后端傳遞到mapper(sql)
2-1、controller
service.add(empname);// 插入數(shù)據(jù)庫(kù)
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)文章
詳解SpringBoot緩存的實(shí)例代碼(EhCache 2.x 篇)
這篇文章主要介紹了詳解SpringBoot緩存的實(shí)例代碼(EhCache 2.x 篇),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-07-07如何在Mac上安裝并配置JDK環(huán)境變量詳細(xì)步驟
這篇文章主要介紹了如何在Mac上安裝并配置JDK環(huán)境變量詳細(xì)步驟,包括下載JDK、安裝JDK、配置環(huán)境變量、驗(yàn)證JDK配置以及可選地設(shè)置PowerShell為默認(rèn)終端,需要的朋友可以參考下2025-04-04java使用socket實(shí)現(xiàn)一個(gè)多線程web服務(wù)器的方法
今天小編就為大家分享一篇java使用socket實(shí)現(xiàn)一個(gè)多線程web服務(wù)器的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-10-10springboot整合logback實(shí)現(xiàn)日志管理操作
本章節(jié)是記錄logback在springboot項(xiàng)目中的簡(jiǎn)單使用,本文將會(huì)演示如何通過(guò)logback將日志記錄到日志文件或輸出到控制臺(tái)等管理操作,感興趣的朋友跟隨小編一起看看吧2024-02-02