Spring Boot中常用的参数传递注解示例详解
作者:明月一壶酒
这篇文章主要介绍了Spring Boot中常用的参数传递注解,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
Spring Boot中常用的参数传递注解
@RequestParam:用于将请求参数绑定到控制器处理方法的参数上,适用于GET请求。@PathVariable:用于获取请求URL中的动态参数,适用于RESTful风格的URL。@RequestBody:用于将请求体中的JSON字符串绑定到控制器处理方法的参数上。@RequestHeader:用于将请求头中的信息绑定到控制器处理方法的参数上。@ModelAttribute:用于将请求参数绑定到一个对象上,适用于POST请求。@RequestAttribute:用于将请求属性绑定到控制器处理方法的参数上。
当你使用了@Param注解来声明参数时,如果使用 #{} 或 ${} 的方式都可以。如果不使用@Param注解来声明参数时,必须使用 #{}方式。如果使用 ${} 的方式,会报错。
示例代码如下:
// 使用@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中的参数传递
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", //返回数据类型 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);// 插入数据库 return info; }
2、后端传递到mapper(sql)
2-1、controller
service.add(empname);// 插入数据库
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>
------------------------分割线--------------------------
还有一种动态sql方式
即把#{}改成${}
这样传到sql的参数即使是字符串也不会带引号。
这样可以实现动态拼接sql。
但这样做有一个弊端:可能会被恶意利用,进行sql注入。
到此这篇关于Spring Boot中常用的参数传递注解的文章就介绍到这了,更多相关Spring Boot参数传递注解内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!