@ModelAttribute注解(SpringMVC)
在方法定义上使用 @ModelAttribute 注解:Spring MVC 在调用目标处理方法前,会先逐个调用在方法级上标注了 @ModelAttribute 的方法。
在方法的入参前使用 @ModelAttribute 注解:可以从隐含对象中获取隐含的模型数据中获取对象,再将请求参数绑定到对象中,再传入入参
将方法入参对象添加到模型中(对于自定义的javaBean有用)
@Target({ElementType.PARAMETER, ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface ModelAttribute {
String value() default "";
}
@ModelAttribute注解之运行原理
运行原理:
① 执行@ModelAttribute注解所修饰的方法,将从数据库中获取的对象存放到Map集合中,key为user(javaBean类的首字母小写形式)
② SpringMVC从Map集合中获取 user对象,将表单数据封装到与参数名称对应的user对象属性上
③ SpringMVC将user对象作为参数,传递给目标方法。
④ 注意:@ModelAttribute 注解修饰的方法中,放入到Map集合中的key值,应该和目标方法参数类型的类名称首字母小写一致。
@ModelAttribute//会在方法执行前执行改方法,同时会自动将数据存放到map中,可以用return employee返回该对象,也可以自己设置
public void getEmployee(@RequestParam(value="id",required=false)Integer id,Model model){
Employee employee = employeeDao.get(id);
if(employee != null)
model.addAttribute("employee", employee);
System.out.println("查出的员工:"+employee);
}
@RequestMapping(value="/emp/{id}",method=RequestMethod.PUT)
//@ModelAttribute(value="employee")Employee employee
//将封装在map中的对象取出来,添加到自定义的JavaBean中
public String empUpdate(@ModelAttribute(value="employee")Employee employee){ System.out.println(employee); employeeDao.save(employee); return "redirect:/emps"; }
@ModelAttribute注解(SpringMVC)的更多相关文章
- SpringMVC @ModelAttribute注解
/** * 1. 有 @ModelAttribute 标记的方法, 会在每个目标方法执行之前被 SpringMVC 调用! * 2. @ModelAttribute 注解也可以来修饰 ...
- 7、SpringMVC源码分析(2):分析HandlerAdapter.handle方法,了解handler方法的调用细节以及@ModelAttribute注解
从上一篇 SpringMVC源码分析(1) 中我们了解到在DispatcherServlet.doDispatch方法中会通过 mv = ha.handle(processedRequest, res ...
- SpringMVC(十七-二十) ModelAttribute 注解
有点难理解. 修饰方法是表示在该控制器的所有目标方法执行前都执行该modelattribute注解的方法. 修饰参数是表示什么?修饰参数时@modelattributes(value="xx ...
- springmvc在使用@ModelAttribute注解获取Request和Response会产生线程并发不安全问题(转)
springmvc在获取Request和Response有很多方式:具体请看:https://www.cnblogs.com/wade-luffy/p/8867144.html 产生线程问题的代码如下 ...
- SpringMVC的@ModelAttribute注解简单使用(用户修改信息)
例如有一个User对象,我们要修改他的值,但是不能修改他的密码!通过表单提交数据之后,password为null,会把原对象的passwod覆盖掉.这时候可以用@ModelAttribute注解处理. ...
- SpringMvc中@ModelAttribute注解的使用
一.绑定请求参数到指定对象 public String test1(@ModelAttribute("user") UserModel user) 只是此处多了一个注解@Model ...
- 第四节 数据格式化和ModelAttribute注解的介绍
从来都不坦荡,情绪都写在脸上:不开心的时候,不爱说话,笑也勉强. 课堂笔记,如果这么写,不仅仅是手速,还要有语速, 这样不太适合! --胖先生 关于数据传递: 客户端传递数据到服务端: 1.使用普通的 ...
- Spring MVC @ModelAttribute注解
在一个Controller内,被@ModelAttribute标注的方法会在此controller的每个handler方法执行前被执行. 被@ModelAttribute标注的方法的参数绑定规则和普通 ...
- @ModelAttribute注解详解
@ModelAttribute注解详解 1.@ModelAttribute定义: 被该注解定义的方法,会在该方法所在的controller的任何目标方法执行之前执行 2.@ModelAttribute ...
随机推荐
- 实时监听input输入的变化(兼容主流浏览器)【转】
遇到如此需求,首先想到的是change事件,但用过change的都知道只有在input失去焦点时才会触发,并不能满足实时监测的需求,比如监测用户输入字符数. 在经过查阅一番资料后,欣慰的发现firef ...
- js获得当前元素的样式
利用currentStyle()和ComputedStyle() 1 通常用法: balance为类名 window.getComputedStyle(document.querySelector(& ...
- Installation Oracle11gR2 RAC---常见报错处理
第六章.报错处理 6.1 root.sh脚本执行失败处理 安装grid时,执行rootsh脚本报错如下: Adding Clusterware entries to inittab USM drive ...
- 通过set-context 控制namespace 进行隔离
kubernetes RBAC 需要了解 rules roles subjects rolebindings(role绑定) rules 是一组操作 verbs .资源 . api组. 如果只 ...
- esp8266(2) 智能配置
http://www.arduino.cn/thread-46594-1-1.html http://blog.csdn.net/sadshen/article/details/47049129 ht ...
- MP实战系列(五)之封装方法讲解
mybatis plus封装的方法怎么用?以及它们对应的sql是那些sql?及其什么情况用? 这些需要说下,以下我将会将我常用的说下,不是常用的,可能提以下或者不提. 根据主键查询 UserEntit ...
- 蒟蒻qxt的sd'日常
emm... 今天刷了一道水题 居然 死循环了 真的是水题啊 顿时自闭 (救救孩子吧) 结果 bug是 我把for循环中的i的值改变了 使得i的值一直都不会达到他的边界值 于是就死循环了 所以 要用到 ...
- Android TimeAnimator && TimeListener翻译
TimeAnimator:提供了一个简单的回调机制,通过 TimeAnimator.TimeListener,在动画的每一帧处通知你.这个动画器没有时间,插值或是对象值设定.回调监听器为每一帧动画接受 ...
- 关于Http 传输二维json
传输一维的好说 public static String doPost(String url) { String result = new String(); OutputStream out = n ...
- Python、Lua和Ruby三大语言脚本哪家强?
这三种语言中的哪一种更合适你的项目?很大程度取决于你想达到什么样的目标.作为一书的结尾,在这一节里,我会描述一下它们各自的优点和不足. Python的优点和不足 Python的优点如下: 1. P ...