SpringMVC@ModelAttribute的运行流程

  前边我们讲过了SpringMVC如何确定处理方法的POJO类型的入参。即它会先确定自己的一个key(按照有无@ModelAttribute注解修饰来区分),然后按照这个key先去对应的implicitModel中寻找(即我们在@ModelAttribute修饰的方法中利用Map放入到了implicitModel中对应的key和对象),若有则注入,若无,再去@SessionModel中对应的value中寻找,若有则注入。若是在这个Session中也没有,SpringMVC会通过反射创建一个新的POJO的对象注入给处理方法的入参。

  下边我们来讲一讲@ModelAttribute注解的方法到目标方法之间的运行流程。

  即当我们有需求值修改数据记录的某些字段,且不影响其他字段时,我们会采用@ModelAttribute注解标注一个方法,这个方法会在调用所有的目标方法之前执行,作用是将前台提交的表单参数的值先赋值给一个从数据库中拿出的目标对象的属性。执行完这个操作之后,在将这个对象注入给处理方法的入参即可。

  1.@ModelAttribute修饰的方法先执行:从数据库拿出根据前台传入的ID对应的对象,然后将这个对象放入到Map中,从而也放入到了域对象request和impliciModel中。

  2.SpingMVC从Map中取出对象并将前台表单提交的请求参数注入到这个对象的属性中。

  3.SpringMVC将这个对象注入到处理方法的入参中。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值