Spring MVC 之 @ModleAttribute

modelAttribute详解 在学习SpringMVC的过程中,关于@ModelAttribute的使用方法一度遇到一些奇怪的问题,在深入研究源码之后,基本上弄清楚了其内部实现的原理。对于自己的理解有误区的地方进行了纠正,现进行总结如下: @ModelAttribute主要有如下两个功能: 1绑定请求参数到实体对象(表单的命令对象):一是将请求参数的输入封装到POJO对象中;二是创建具体实例,以value为键值存储在Model对象中 立即下载

问题:修改数据库中某对象,但是需要保留该对象的某个属性不变。
这里写图片描述

解决方案:
这里写图片描述

/*
 *由@ModelAttribute 标记的方法,会在每个目标方法执行前被Spring MVC调用!
   * @ModelAttribute 注解也可以来修饰目标方法POJO类型的入参,其value属性值有如下的作用:
 *1).SpringMVC 会使用value属性值在implicitModel 中查找对应的对象,若存在则会直接传入到目标方法的入参中。
 *2).SpringMVC 会以 value 为key ,POJO 类型的对象为value,存入到request中。
 */
@ModelAttribute
public void getUser(@RequestParam(value="id",required = false)Integer id,Map<String, Object> map){
    System.out.println("@modelAttribute执行");
    if(id != null){
        User user =  new User(1, "tom", "123456", "lizhen@edu.cn", 12);
        System.out.println("模拟从数据库中获取对象"+user);
        map.put("abc", user);
    }
}
/*
 * 运行流程:
 * 1.执行@ModelAttribute注解修饰的方法:从数据库中取出对象,把对象放入到了Map中,键为:user
 * 2.SpringMVC 从Map中取出user对象,并把表单的请求参数赋给该User对象的对象属性
 * 3.SpringMVC 把上述对象传入目标方法参数。
 * 
 * 注意:在@ModelAttribue 修饰的方法中,放入到Map时的键需要和目标方法入参类型的第一个字母小写的字符串一致!
 */
@RequestMapping("/testModelAttribute")
public String testModelAttribute(@ModelAttribute("abc")User userl){
    System.out.println("修改:"+userl);
    return SUCCESS;
}
rk3506上移植lvgl应用 本文介绍在RK3506开发板上移植和运行LVGL图形库的方法。 阅读详情

相关推荐

3.6KW储能双向逆变器(原理图PCB源码)

通过百度网盘分享的文件:优快云 3.6KW储能双向逆变器 链接:https://pan.baidu.com/s/18NN6KnpywFUIDtAQ4b1LTg?pwd=csdn 提取码:csdn

2401_86562087的博客 2186

使用这个model操作数据库,一爽到底

我们再来看看Vonajs提供的Model能力,可以让我们用简洁、优雅的代码全方位操作数据库,比如,动态分表、软删除、多租户、动态数据源、二级缓存,等等

zhennann的博客 772

关于光耦隔离与SP3485E芯片一起使用无法拉高485使能引脚问题

最近在做的一个项目,定制了一块STM32F407ZG的工控板,工控板载4个485接口全部都是只能接收数据,不能对外发送数据。1.接线不正确:接线不正确导致485收发出现问题。 2.程序端口初始化问题:控制光耦隔离的输入脚IO的初始化和置位状态有问题。 3.GPIO复用问题:控制对应串口的GPIO不是正点原子默认的GPIO,而是经过复用的其他IO,复用问题。 4.程序设置与485E芯片收发模式不对应:对于使能引脚的电平要根据光耦的输出情况确定输入IO与RE的关系,可能模式没有对应。 5.光耦隔离或者SP485

weixin_45862642的博客 2978

@ModelAttribute运用详解

用法1:用在入参 运用在参数上,会将客户端传递过来的参数按名称注入到指定对象中,并且会将这个对象自动加入ModelMap中,便于View层使用; 用在方法的入参上依次做如下操作: 从隐含对象中获取隐含的模型数据 将请求参数绑定到隐含对象中 将隐含对象传入到入参 将入参绑定到Model 用法2:用在方法上 被@ModelAttribute注释的方法会在此controller的每个方法执行前被执行 ,如果有返回值,则自动将该返回值加入到ModelMap中。因此对于一个controller映射多个URL的用法

Hai-Yang-code的博客 4万+

从零开始搭建Proxmox VE虚拟化网络:手把手教你配置桥接、VLAN和链路聚合

本文详细介绍了如何在Proxmox VE虚拟化环境中配置桥接、VLAN和链路聚合网络。通过分步指南和实战案例,帮助用户掌握Linux Bridge、VLAN隔离和Bonding技术,构建高性能、高可用的企业级虚拟化网络架构。

wind6的博客 979

Python小白也能搞定!用you-get一键下载B站视频合集的保姆级教程

本文为Python新手提供了使用you-get工具一键下载B站视频合集的完整教程。从环境配置、基础下载操作到高级批量下载技巧,详细介绍了如何利用这个开源工具高效获取视频资源,包括解决常见问题和实用优化建议,帮助用户轻松实现离线学习。

weixin_42544663的博客 462

ModelAttribute注解的两种用法

ModelAttribute注解概述 作用: 该注解是SpringMVC4.3版本以后新加入的。它可以用于修饰方法和参数。 出现在方法上,表示当前方法会在控制器的方法执行之前,先执行。它可以修饰没有返回值的方法,也可以修饰有具体返回值的方法。 出现在参数上,获取指定的数据给参数赋值。 属性: value:用于获取数据的key。key可以是POJO的属性名称,也可以是map结构的key。 应用...

清风不灭的博客 2015

STM32F103C8T6的PC13-15引脚配置避坑指南:为什么你的IO口不工作?

本文详细解析了STM32F103C8T6的PC13-15引脚作为普通IO口不工作的原因及解决方案。这三个引脚默认关联侵入检测和低速外部时钟等特殊功能,需先禁用TAMPER和LSE,并开启AFIO时钟,才能正确配置为普通GPIO。文章提供了标准外设库和HAL库的配置步骤、常见问题排查方法及硬件设计注意事项。

weixin_29169899的博客 523

@ModelAttribute注解用法

通过使用@ModelAttribute注解,我们可以方便地在控制器中处理模型属性的绑定和传递,简化了代码编写和数据传递的过程。这意味着该方法的返回值将会自动添加到模型中,并以指定的属性名称暴露给视图。@ModelAttribute注解是Spring框架中的一个注解,用于绑定方法的返回值或请求参数到模型中。当应用于方法的参数时,@ModelAttribute注解表示从模型中获取对应的属性值,并将其绑定到方法参数上。当应用于方法级别时,@ModelAttribute注解表示该方法的返回值应该被添加到模型中。

zznn0306的博客 756

AgentScope Java 2.0 项目实战: 从零构建自己的个人AI助手“小龙虾“

本文系统介绍如何基于Spring Boot WebFlux、React 18和TypeScript,从零搭建一个本地化的个人AI助手管理平台——AgentScope Paw。项目支持多Agent创建与管理、SSE流式对话、工作区文件CRUD、技能市场、子智能体孵化、AI辅助起草Agent配置等核心功能,并深度集成钉钉、企业微信、飞书、GitHub等IM通道。

program哲学 1431

ubuntu 安装node和npm

在ubuntu中经常需要用到node ,npm,因为npm基本会和node同时安装,所以只需要安装node即可。可以使用 nvm(Node Version Manager)来管理你的 Node.js 版本。

风吹落叶的博客 2293

ModelAttribute用法详解

这是个不错的办法,也比较灵活,但是对于当下的场景,controller类下的每一个方法还是要重复写代码,且如果新增了接口,接口里还要写重复代码,比较麻烦。这样写的好处是我们不需要在每个方法中都放入登录校验的代码,写在controller类下面的每个方法调用之前都会去调用getUserInfo方法验证登录状态,即便再写新的接口,也无需特殊处理。我们写一个基本类,其中包含了一个验证登录状态的接口getUserInfo,接口上有@ModelAttribute注解⬇️。

a20100997的博客 2860

STM32CubeMX之emWin移植

“前面两章介绍了SDRAM和LTDC的使用,本篇文章将介绍emWin移植到STM32。”硬件环境:STM32F429IGT6软件环境:STM32CubeMX v5.5.0...

zhang062061的专栏 2827

java attribute的作用_@ModelAttribute 的使用

@ModelAttribute注解可被应用在 方法 或 方法参数 上。对方法使用 @ModelAttribute 注解:注解在方法上的@ModelAttribute说明了方法的作用是用于添加一个或多个属性到model上。这样的方法能接受与@RequestMapping注解相同的参数类型,只不过不能直接被映射到具体的请求上。@ModelAttribute 方法会先被调用在同一个控制器中,注解了@Mo...

weixin_33363025的博客 2067

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

@ModelAttribute用法总结

@ModelAttribute     @ModelAttribute主要的作用是将数据添加到模型对象中,用于视图页面显示。@ModelAttribute注释的位置不同,和其他注解一起使用时有很多种用法。 @ModelAttribute注解在方法上。@ModelAttribute注解的方法会在Controller每个方法执行前被调用。这个有点类似于Juni...

yue_xx的博客 2万+

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

asp.net MVC中的@model与Model

在MVC的实际使用中,我们经常需要在前后台之间传递数据,这也就是Model实体的使用。传递数据的方式还有ViewBag和ViewData两种。具体两种方式的区别于使用请参考,今天主要讲解的是 MVC中的@model与Model的使用。

ydm东方旭日的专栏 5万+

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

注解@ModelAttribute的详细总结

本文详细介绍的@ModelAttribute的作用、逻辑以及使用方法,一文搞懂@ModelAttribute注解

cuiyaocool的博客 8826

spring mvc的moduleattribute

问题症状:@ModuleAttribute的属性也设置了, 但"修改"特定entity,发现和“添加”的结果一样。 问题解决: @ModuleAttribute public Target get(@RequestParam Long id) {       if(id != null)                return service.get(id); //此处被

anzhuangguai的专栏 1234

@ModelAttribute用法详解

@ModelAttribute用法详解 在学习SpringMVC的过程中,关于@ModelAttribute的使用方法一度遇到一些奇怪的问题,在深入研究源码之后,基本上弄清楚了其内部实现的原理。对于自己的理解有误区的地方进行了纠正,现进行总结如下: @ModelAttribute主要有如下两个功能: 1绑定请求参数到实体对象(表单的命令对象):一是将请求参数的输入封装到POJO对象中...

m0_37912407的博客 2117

学习Dagger2笔记:【3】@Module & @Provides

使用@Module和@Provides注解 还记得上一节中添加的需求吗? 要求显示Computer信息前,还要显示当前页面的生成时间 为此,我们对Activity添加了如下成员变量: @set:Inject lateinit var timestamp: Date 它是一个java.util.Date对象,自然我们是没法将@Inject注解添加到其构造函数上的,因此我们也就没有Date的工厂...

Cmd的笔记本 2455

@RequestBody @RequestParam @ModelAttribute学习记录

前言 最近做的一个功能里面接触到了Spring相关的一些知识点,目前还没系统学Spring,先根据遇到的问题零碎学习并进行总结。后续系统学习Spring后再整体做总结。 开发这个功能遇到一个问题,原本接口参数中有@RequestBody,后续需求变更又加了@RequestParam,测试的时候报Json parser error的错误,网上查询说是这两个东西不能同时存在一个方法的参数列表中(j...

qq_38586378的博客 334

SpringMvc中常用的注解

文章目录1.@RequestParam2.@RequestBody3.@PathVaribale4.@RequestHeader5.@CookieValue注解6.@ModuleAttribute6.1 作用在方法上6.2 作用在参数上7@SessionAttribute 1.@RequestParam 请求参数 作用:把请求中的指定名称的参数传递给控制器的形参赋值 属性: value:请求参数...

你今天真好看呀 511

@ModelAttribute详解

@ModelAttribute简介@ModelAttribute是Spring MVC最重要的注释之一。1、此注释可作为方法参数或方法声明之前使用。2、此注释的主要目的是将请求参数或表单字段绑定到模型对象。模型对象可以使用请求参数(如示例中所示)或已经存储在会话对象中来生成。3、注意,这个@ModelAttribute方法是在调用@RequestMapping的控制器方法之前调用的。序列背后的逻辑...

Less Is More 2192

SpringMVC中的@ModelAttribute运用详解

被@ModelAttribute注释的方法会在此controller每个方法执行前被执行,因此对于一个controller映射多个URL的用法来说,要谨慎使用。 我们编写控制器代码时,会将保存方法独立成一个控制器也是如此。   1.@ModelAttribute注释void返回值的方法 @Controller public class HelloModelController { ...

Visonws的博客 1498

@ModelAttribute

@ModelAttribute是springmvc框架下的注解,今天在项目中遇到,感觉没什么印象,就百度了下,感觉讲的也很模糊,今天就简单的讲讲我的理解。 @ModelAttribute通常有一下四种用法: 第一种:不带返回中的方法。 ...

chongliu1196的博客 304
上一篇: Spring MVC @SessionAttributes
下一篇: Spring MVC @ModelAttribute 源码分析流程
jeffery0628
博客等级 码龄11年 39粉丝 112原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值