Spring MVC传递接收参数方式小结

 更新时间:2021年11月03日 15:31:16   作者:咸猪手呆呆  
大家在开发中经常会用到Spring MVC Controller来接收请求参数,主要常用的接收方式就是通过实体对象以及形参等方式、有些用于GET请求,有些用于POST请求,有些用于两者,下面介绍几种常见的Spring MVC传递接收参数的方式

大家在开发中经常会用到Spring MVC Controller来接收请求参数,主要常用的接收方式就是通过实体对象以及形参等方式、有些用于GET请求,有些用于POST请求,有些用于两者。 下面的几种常见的后台接收参数的方式分享一下。主要方式如下:

  • 实体 Bean 接收请求参数
  • 处理方法的形参接收请求参数
  • HttpServletRequest 接收请求参数
  • @PathVariable 接收 URL 中的请求参数
  • @RequestParam 接收请求参数
  • @ModelAttribute 接收请求参数

可以根据实际情况选择合适的接收方式。

一、通过实体Bean接收请求参数

@RequestMapping("/login")
public String login(User user, Model model) {
    if ("admin".equals(user.getName())
            && "123456".equals(user.getPwd())) {
        model.addAttribute("message", "登录成功");
        return "main"; // 登录成功,跳转到主页
    } else {
        model.addAttribute("message", "用户名或密码错误");
        return "login";
    }
}

二、通过处理方法的形参接收请求参数

通过处理方法的参数接收请求参数,就是将表单参数直接写入控制器类对应方法的参数中,即参数名称与请求参数名称完全相同。 接收参数模式适用于GET和POST提交请求

@RequestMapping("/login")
public String login(String name, String pwd, Model model) {
    if ("admin".equals(user.getName())
            && "123456".equals(user.getPwd())) {
       
        model.addAttribute("message", "登录成功");
        return "main"; // 登录成功,跳转到跳转到主页
    } else {
        model.addAttribute("message", "用户名或密码错误");
        return "login";
    }
}

三、通过HttpServletRequest接收请求参数

@RequestMapping("/login")
public String login(HttpServletRequest request, Model model) {
    String name = request.getParameter("name");
    String pwd = request.getParameter("pwd");
   
    if ("admin".equals(name)
            && "123456".equals(pwd)) {
        model.addAttribute("message", "登录成功");
        return "main"; // 登录成功,跳转到 main.jsp
    } else {
        model.addAttribute("message", "用户名或密码错误");
        return "login";
    }
}

四、通过@PathVariable接收URL中的请求参数

通过 @PathVariable 获取 URL 中的参数,示例代码如下。

@RequestMapping("/login")
public String login(@RequestParam String name, @RequestParam String pwd, Model model) {
   
    if ("admin".equals(name)
            && "123456".equals(pwd)) {
        model.addAttribute("message", "登录成功");
        return "main"; // 登录成功,跳转到主页
    } else {
        model.addAttribute("message", "用户名或密码错误");
        return "login";
    }
}

五、通过@RequestParam接收请求参数

在方法入参处使用 @RequestParam 注解指定其对应的请求参数。@RequestParam 有以下三个参数:

  • value:参数名
  • required:是否必须,默认为 true,表示请求中必须包含对应的参数名,若不存在将抛出异常
  • defaultValue:参数默认值
@RequestMapping("/login")
public String login(@RequestParam String name, @RequestParam String pwd, Model model) {
   
    if ("admin".equals(name)
            && "123456".equals(pwd)) {
        model.addAttribute("message", "登录成功");
        return "main"; // 登录成功,跳转到主页
    } else {
        model.addAttribute("message", "用户名或密码错误");
        return "login";
    }
}

六、通过@ModelAttribute接收请求参数

@ModelAttribute 注释用于将多个请求参数封装到单个实体对象中,以简化数据绑定过程,并自动作为模型数据公开,以便在视图页面表示中使用。   “通过实体bean接收请求参数”简单地将多个请求参数封装到一个实体对象中,而不将它们作为模型数据公开

@RequestMapping("/login")
public String login(@ModelAttribute("user") User user, Model model) {
   
    if ("admin".equals(name)
            && "123456".equals(pwd)) {
       
        model.addAttribute("message", "登录成功");
        return "main"; // 登录成功,跳转到主页
    } else {
        model.addAttribute("message", "用户名或密码错误");
        return "login";
    }
}

到此这篇关于Spring MVC传递接收参数的几种方式的文章就介绍到这了,更多相关Spring MVC传递接收参数内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java8接口默认静态方法及重复注解原理解析

    Java8接口默认静态方法及重复注解原理解析

    这篇文章主要介绍了Java8接口默认静态方法及重复注解原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-04-04
  • Spring Boot中使用Activiti的方法教程(二)

    Spring Boot中使用Activiti的方法教程(二)

    工作流(Workflow),就是“业务过程的部分或整体在计算机应用环境下的自动化”,下面这篇文章主要给大家介绍了关于Spring Boot中使用Activiti的相关资料,需要的朋友可以参考下
    2018-08-08
  • SpringBoot打印启动时异常堆栈信息详解

    SpringBoot打印启动时异常堆栈信息详解

    在本篇文章里小编给大家整理的是关于SpringBoot打印启动时异常堆栈信息,有需要的朋友们可以学习下。
    2019-11-11
  • SpringBoot整合Dubbo+Zookeeper实现RPC调用

    SpringBoot整合Dubbo+Zookeeper实现RPC调用

    这篇文章主要给大家介绍了Spring Boot整合Dubbo+Zookeeper实现RPC调用的步骤详解,文中有详细的代码示例,对我们的学习或工作有一定的帮助,需要的朋友可以参考下
    2023-07-07
  • 新手入门了解ArrayList扩容机制

    新手入门了解ArrayList扩容机制

    这篇文章主要介绍了新手入门了解ArrayList扩容机制,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-10-10
  • 在SSM框架中将图片上传到数据库中的实现代码

    在SSM框架中将图片上传到数据库中的实现代码

    这篇文章主要介绍了在SSM框架中将图片上传到数据库中的实现代码,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-03-03
  • Spring Cloud + Nacos + Seata整合过程(分布式事务解决方案)

    Spring Cloud + Nacos + Seata整合过程(分布式事务解决方案)

    Seata 是一款开源的分布式事务解决方案,致力于在微服务架构下提供高性能和简单易用的分布式事务服务,这篇文章主要介绍了Spring Cloud + Nacos + Seata整合过程(分布式事务解决方案),需要的朋友可以参考下
    2022-03-03
  • Springboot校验工具类详细代码示例

    Springboot校验工具类详细代码示例

    这篇文章主要给大家介绍了关于Springboot校验工具类的相关资料,工具类里面主要是封装了一些常用字段验证方法,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-02-02
  • 使用IDEA如何隐藏文件或文件夹

    使用IDEA如何隐藏文件或文件夹

    在IDE中隐藏不需要显示的文件或文件夹,通过设置中的File Types选项来指定忽略特定文件或目录,简单几步操作即可完成,提高工作区的整洁性
    2024-10-10
  • springboot项目实现定时备份数据库导出sql文件方式

    springboot项目实现定时备份数据库导出sql文件方式

    这篇文章主要介绍了springboot项目实现定时备份数据库导出sql文件方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-03-03

最新评论