SpringMVC注解@ModelAttribute的处理流程

@ModelAttribute 可以修饰方法与目标方法中的参数

  1. 修饰方法:
    1). 被修饰的方法会在调用目标方法前调用
    2). 在被修饰的方法中使用 HashMap、Model、ModelMap 存入键值对,springmvc都会将数据存入模 型数据当中;源码表示在进入@ModelAttribute修饰的方法中,会先实例出mav容器,之后往容器中放入数据
    在这里插入图片描述
    在这里插入图片描述
  2. 修饰目标方法中的参数
    在这里插入图片描述
    1). 首先@ModelAttribute要确定一个key去springmvc中找与该key对应的值,先说如何确定;如果@ModelAttribute指定了key,就如图上的 “person”,那 person 就是key;如果未指定,形如public String update(Person person),那么就将参数的类名Person的第一个变字母小写作为key,就是person
    2). key确定了,@ModelAttribute根据key先去 mavContainer 中寻找值,有就赋予给目标方法的形参,没有会判断Controller是否用 @SessionAttribute 修饰,如果修饰了则进入session中寻找有无值,没找到会抛异常,如果Controller没被 @SessionAttribute 修饰,则用反射new出一个形参对象,进而形参会被赋予 request 当中进行转发
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值