SpringMVC@ModelAttribute的运行流程

来源:互联网 发布:ubuntu查找java路径 编辑:程序博客网 时间:2024/06/06 14:23

  前边我们讲过了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将这个对象注入到处理方法的入参中。

原创粉丝点击