首页 > 其他分享 >Spring Boot 2.0 @ModelAttribute

Spring Boot 2.0 @ModelAttribute

时间:2023-10-16 16:35:04浏览次数:36  
标签:Spring findUserById ModelAttribute user Model 2.0 model userId

image

Spring Boot 2.0 中的注解 @ModelAttribute 有什么作用呢?

通常情况下,我们会将 @ModelAttribute 注解放置在 Controller 中的某个方法上,那么,如果您在请求这个 Controller 中定义的 URI 时,会首先调用这个被注解的方法,并将该方法的结果作为 Model 的属性,然后才会调用对应 URI 的处理方法。

一、@ModelAttribute 使用场景

我们通常会通过 @ModelAttribute 来向某个 Controller 中需要的公共模型 Model 中添加数据。如下面的示例代码所示。

二、示例代码

@ModelAttribute
public void findUserById(@PathVariable("userId") Long userId, Model model) {
model.addAttribute("user", userService.findUserById(userId));
}

@GetMapping("/user/{userId}")
public String findUser(Model model) {
System.out.println(model.containsAttribute("user"));
return "success !";
}

当我们请求接口 /user/1 时,会先调用 findUserById 方法,方法内,通过 userId 查询到对应的 User 对象放置到 Model 模型中。

需要注意,如果您仅仅只是添加一个对象到 Model 模型中,上面的代码还可以再精炼一点:

@ModelAttribute
public User findUserById(@PathVariable("userId") Long userId) {
return userService.findUserById(userId);
}

通过上述的代码,返回的 User 对象会被自动添加到 Model 模型中,就相当于您手动调用了 model.addAttribute(user) 方法。

标签:Spring,findUserById,ModelAttribute,user,Model,2.0,model,userId
From: https://www.cnblogs.com/shenMaQN/p/17767671.html

相关文章

  • SpringCloud专题面试
    1.微服务架构优缺点1)单体应用开发的效率比较低,由于代码量大,项目启动缓慢,部署麻烦,后期难以维护。2)服务拆分分为多个小应用,提高了开发效率,降低了代码的耦合程度,不同的服务可以采用不同的语言,提高了灵活性;小的改动进行快捷部署,方便维护。3)拆分的依据原则就是高内聚低耦合,每个服......
  • java -jar命令及SpringBoot通过java -jav启动项目的过程
    本篇文章将为大家讲述关于SpringBoot项目工程完成后,是如何通过java-jar命令来启动的,以及介绍java-jar命令的详细内容,对SpringBootjava-jav启动过程感兴趣的朋友跟随小编一起看看吧本篇文章将为大家讲述关于SpringBoot项目工程完成后,是如何通过java-jar命令来启动的......
  • ubuntu 22.04安装mysql5.7
    ubuntu22.04系统安装mysql5.7一、查看系统默认安装的数据库版本apt-getupdateapt-cachepolicymysql-serverubuntu20.04自带的版本是8.0.34,而我们需要安装mysql5.7的版本就需要换源二、更换apt源1.备份原来的source文件cp/etc/apt/sources.list/etc/apt/sources......
  • java-springboot和servlet的项目搭建
    1.404->启动tomcat->tomcat闪退->配置jre全局环境,重启电脑->8080端口被占用->下载太多tomcat->重新配置->还是被占用->命令行找netstat-ano|findstr80得到PID,在任务管理器找到(用PID排序会更好找)是一个java.exe,结束进程。->成功运行2.入口类3.mysql命令不生效->因为没加分号(我......
  • SpringBoot+内置Tomcat配置,参数调优,最大并发量,最大连接数
    最近在研究这块的信息,记录下一些大神的文章:SpringBoot最大连接数及最大并发数是多少???https://blog.csdn.net/weixin_44421461/article/details/132486085SpringBoot+内置Tomcat配置,参数调优,最大并发量,最大连接数https://blog.csdn.net/myyhtw/article/details/129069586Sprin......
  • Nacos源码 (7) Nacos与Spring
    SpringCloud工程可以使用Nacos作为注册中心和配置中心,配置和使用非常简单,本文将简单介绍使用方式,并分析其实现方式。SpringCloud工程集成NacosSpringCloud工程使用Nacos非常简单,只需要引入依赖、编写配置参数、在启动类上添加注解即可。引入依赖<dependencyManagement><dep......
  • BST-Treap名次树指针实现板子 Ver2.0
    为了更好的阅读体验,请点击这里这里只有板子没有原理QWQ可实现1.插入x数2.删除x数(若有多个相同的数,只删除一个)3.查询x数的排名(排名定义为比当前数小的数的个数+1)4.查询排名为x的数5.求x的前驱(前驱定义为小于x,且最大的数)6.求x的后继(后继定义为大于x,且......
  • LeetCode Day04 24&19&02.07&142
    24. 两两交换链表中的节点这题使用虚拟头结点会更好做,因为有虚拟头结点我们交换结点的时候步骤会更加清晰。操作此类有指针类型的题目要注意:1.画图避免混乱2.注意指针先后顺序classSolution{publicListNodeswapPairs(ListNodehead){ListNodedumyhea......
  • springboot的学习--bean的作用域
    bean默认会在springboot项目运行即容器启动时被创建,我们可以用@Lazy注解来延迟初始化,该注解可以将bean对象的创建延迟到第一次使用时创建 我们也可以使用@Scope注解来配置作用域,如果不配置,一般是@Scope(”singleton")默认单例,而使用@Scope("prototype")配置可以在每次使用该bean的......
  • nbcio-boot升级springboot、mybatis-plus和JSQLParser后的LocalDateTime日期json问题
    升级后,运行显示项目的时候出现下面错误2023-08-1210:57:39.174[http-nio-8080-exec-3][1;31mERROR[0;39m[36morg.jeecg.common.aspect.DictAspect:104[0;39m-json解析失败Java8date/timetype`java.time.LocalDateTime`notsupportedbydefault:addModule"com.faster......