Spring?Boot中常用的參數(shù)傳遞注解示例詳解
Spring Boot中常用的參數(shù)傳遞注解
@RequestParam:用于將請求參數(shù)綁定到控制器處理方法的參數(shù)上,適用于GET請求。@PathVariable:用于獲取請求URL中的動態(tài)參數(shù),適用于RESTful風格的URL。@RequestBody:用于將請求體中的JSON字符串綁定到控制器處理方法的參數(shù)上。@RequestHeader:用于將請求頭中的信息綁定到控制器處理方法的參數(shù)上。@ModelAttribute:用于將請求參數(shù)綁定到一個對象上,適用于POST請求。@RequestAttribute:用于將請求屬性綁定到控制器處理方法的參數(shù)上。
當你使用了@Param注解來聲明參數(shù)時,如果使用 #{} 或 ${} 的方式都可以。如果不使用@Param注解來聲明參數(shù)時,必須使用 #{}方式。如果使用 ${} 的方式,會報錯。
示例代碼如下:
// 使用@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請求類型
url: /add,
data: JSON.stringify(obj),
contentType: "application/json;charset=utf-8", //請求頭
dataType: "text", //返回數(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>------------------------分割線--------------------------
還有一種動態(tài)sql方式
即把#{}改成${}
這樣傳到sql的參數(shù)即使是字符串也不會帶引號。
這樣可以實現(xiàn)動態(tài)拼接sql。
但這樣做有一個弊端:可能會被惡意利用,進行sql注入。
到此這篇關于Spring Boot中常用的參數(shù)傳遞注解的文章就介紹到這了,更多相關Spring Boot參數(shù)傳遞注解內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
詳解SpringBoot緩存的實例代碼(EhCache 2.x 篇)
這篇文章主要介紹了詳解SpringBoot緩存的實例代碼(EhCache 2.x 篇),具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-07-07
java使用socket實現(xiàn)一個多線程web服務器的方法
今天小編就為大家分享一篇java使用socket實現(xiàn)一個多線程web服務器的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-10-10
springboot整合logback實現(xiàn)日志管理操作
本章節(jié)是記錄logback在springboot項目中的簡單使用,本文將會演示如何通過logback將日志記錄到日志文件或輸出到控制臺等管理操作,感興趣的朋友跟隨小編一起看看吧2024-02-02

