Spring Boot中常用的参数传递注解示例详解

 更新时间:2023年11月21日 14:55:47   作者:明月一壶酒  
这篇文章主要介绍了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参数传递注解内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java中Mybatis分页查询的四种传参方式

    Java中Mybatis分页查询的四种传参方式

    这篇文章主要介绍了Java中Mybatis分页查询的四种传参方式:顺序传参,@param传参,自定义POJO类传参,Map传参,想详细了解传参方式的小伙伴可以详细阅读本文,有一定的而参考价值
    2023-03-03
  • 判断List和Map是否相等并合并List中相同的Map

    判断List和Map是否相等并合并List中相同的Map

    今天小编就为大家分享一篇关于判断List和Map是否相等并合并List中相同的Map,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2018-12-12
  • Maven批处理脚本与Qoder配置使用指南

    Maven批处理脚本与Qoder配置使用指南

    在 Java 项目开发过程中,经常需要执行 Maven 清理、编译、打包等操作,为了提高效率,我们可以编写批处理脚本自动化这些流程,并在 Qoder 中配置使用,所以本文介绍了如何编写Maven批处理脚本并配置Qoder使用,需要的朋友可以参考下
    2026-06-06
  • Java中日期格式化YYYY-DD的操作bug

    Java中日期格式化YYYY-DD的操作bug

    这篇文章主要介绍了Java中日期格式化YYYY-DD中遇到的坑,本文给大家分享到脚本之家平台,需要的朋友可以参考下
    2020-01-01
  • Java 深入理解创建型设计模式之原型模式

    Java 深入理解创建型设计模式之原型模式

    原型(Prototype)模式的定义如下:用一个已经创建的实例作为原型,通过复制该原型对象来创建一个和原型相同或相似的新对象。在这里,原型实例指定了要创建的对象的种类。用这种方式创建对象非常高效,根本无须知道对象创建的细节
    2022-02-02
  • mybatis-plus 扩展批量新增的实现

    mybatis-plus 扩展批量新增的实现

    本文主要介绍了mybatis-plus 扩展批量新增的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-01-01
  • spring boot的健康检查HealthIndicators实战

    spring boot的健康检查HealthIndicators实战

    这篇文章主要介绍了spring boot的健康检查HealthIndicators实战,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-10-10
  • mybatis中返回多个map结果问题

    mybatis中返回多个map结果问题

    这篇文章主要介绍了mybatis中返回多个map结果问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-06-06
  • SpringSecurity实现自定义数据源实战指南

    SpringSecurity实现自定义数据源实战指南

    本文给大家介绍SpringSecurity实现自定义数据源的相关知识,本文通过实例代码给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧
    2025-09-09
  • Spring Boot如何在加载bean时优先选择我

    Spring Boot如何在加载bean时优先选择我

    这篇文章主要介绍了Spring Boot如何在加载bean时优先选择我,在 Spring Boot 应用程序中,我们可以采取三种方式实现自己的 bean 优先加载,本文通过实例代码给大家详细讲解,需要的朋友可以参考下
    2023-03-03

最新评论