@ModelAttribute注解详解
1.@ModelAttribute定义:
被该注解定义的方法,会在该方法所在的controller的任何目标方法执行之前执行
2.@ModelAttribute使用:
1)应用场景:
当我们需要修改一个user的信息时,我们希望只修改部分属性值,其他属性值保留。
这个时候我们就需要用@ModelAttribute定义一个方法,这个方法在目标方法执行之前执行。
先到数据库查询到需要修改的user,转到目标方法,将表单的数据赋值到这个user中,最后将user作为目标方法的入参传给目标方法处理。
由于我们先从数据库中查询到了user,并将表单中的数据(这些数据只是user实体中的部分属性)赋值给该user,这样我们就达到了我们的需求。
即:当我们需要修改一个user的信息时,我们希望只修改部分属性值,其他属性值保留。
2)代码:
@ModelAttribute
public void getUser(@RequestParam(value="id", required=false) Integer id, Map<String, Object> map){
if(id!=null){
User user = new User(); //模拟从数据库中取出user
map.put("user", user);
}
}
注意:
1.@RequestParam注释中一定要添加required=false,为什么?我们想一想,被@RequestParam修饰的方法会在所有(有关的、无关的)目标方法执行之前执行,
如果某个方法的请求没有请求参数id,那么将会抛出异常
2.将查询到的user保存到map中
@RequestMapping(value="/userOption", method=RequestMethod.PUT)
public String modifyUser(User user){
System.out.println(user);
return "success";
}
注意:
1.在@ModelAttribute方法结束,目标方法开始之前,springmvc为我们做了一件事:从map中取出user,将表单数据赋值给user,将user传给目标方法的入参
2.这时,目标方法的入参user就是我们修改过后的user(包括修改过的数据和没被修改的数据),之后我们就可以将use保存到数据库了
@ModelAttribute注解详解的更多相关文章
-
08_springmvc数据回显和@ModelAttribute注解详解
一.数据回显 提交后,如果出现错误,将刚才提交的数据回显到刚才的提交页面. 二.pojo数据回显方法 1.springmvc默认对pojo数据进行回显. pojo数据传入controller方法后,s ...
-
@RequestBody, @ResponseBody 注解详解(转)
原文地址: https://www.cnblogs.com/qq78292959/p/3760651.html @RequestBody, @ResponseBody 注解详解(转) 引言: 接上一篇 ...
-
SpringMVC 常用注解 详解
SpringMVC 常用注解 详解 SpringMVC 常用注解 1.@RequestMapping 路径映射 2.@Requ ...
-
【转】@RequestParam @RequestBody @PathVariable 等参数绑定注解详解
@RequestParam @RequestBody @PathVariable 等参数绑定注解详解 2014-06-02 11:24 23683人阅读 评论(2) 收藏 举报 目录(?)[+] 引言 ...
-
@PathVariable @RequestParam @RequestBody等参数绑定注解详解
一.分类 handler method 参数绑定常用的注解,我们根据他们处理的Request的内容不同分为四类: 处理request uri 部分的注解: @PathVariable;(这里指ur ...
-
@ModelAttribute运用详解
@ModelAttribute使用详解 1.@ModelAttribute注释方法 例子(1),(2),(3)类似,被@ModelAttribute注释的方法会在此controller每个 ...
-
(转)spring学习之@ModelAttribute运用详解
@ModelAttribute使用详解 1 @ModelAttribute注释方法 例子(1),(2),(3)类似,被@ModelAttribute注释的方法会在此controller每个方法执行前被 ...
-
[转载]springmvc学习之@ModelAttribute运用详解
spring学习之@ModelAttribute运用详解 链接
-
@ModelAttribute运用详解(二十一)
@ModelAttribute使用详解 1.@ModelAttribute注释方法 例子(1),(2),(3)类似,被@ModelAttribute注释的方法会在此controller每个方法 ...
随机推荐
-
算法:Astar寻路算法改进,双向A*寻路算法
早前写了一篇关于A*算法的文章:<算法:Astar寻路算法改进> 最近在写个js的UI框架,顺便实现了一个js版本的A*算法,与之前不同的是,该A*算法是个双向A*. 双向A*有什么好处呢 ...
-
[Offer收割]编程练习赛3 - 题目3 : 智力竞赛
智力竞赛 Problem's Link ---------------------------------------------------------------------------- Mea ...
-
【leetcode】Count and Say (easy)
The count-and-say sequence is the sequence of integers beginning as follows:1, 11, 21, 1211, 111221, ...
-
CentOS7.1 安装关键步骤 记录下来
SecureCRT下载地址 https://yunpan.cn/cS9W94kuvhXPb 访问密码 08cd[这里GNOME桌面 下的 要全选,截屏有误]
-
ASP.NET Core 快速入门【第二弹-实战篇】
上篇讲了asp.net core在linux上的环境部署.今天我们将做几个小玩意实战一下.用到的技术和工具有mysql.websocket.AngleSharp(爬虫html解析).nginx多站点部 ...
-
[PHP] 2018年终总结
去掉敏感信息后的不完整版 ==========================================================================2018年12月29日 记 ...
-
RabbitMQ消息队列(一):详细介绍
1. 历史 RabbitMQ是一个由erlang开发的AMQP(Advanced Message Queue )的开源实现.AMQP 的出现其实也是应了广大人民群众的需求,虽然在同步消息通讯的世界里有 ...
-
php简单实现二级联动
<script type="text/javascript"> //当第一级选项发生变化的时候跳转 function jump() { location.href='? ...
-
DEMO6:坐标添加文字标签的JavaScript插件
Google地图API MarkerWithLabel Example http://google-maps-utility-library-v3.googlecode.com/svn/tags/ ...
-
为你的CSDN博客添加CNZZ流量统计功能
一.流量统计介绍 流量统计是指通过各种科学的方式,准确的纪录来访某一页面的访问者的流量信息,目前而言,必须具备可以统计. 1.简介 统计独立的访问者数量(独立用户.独立访客): 可以统计独立的IP地址 ...