Spring的@ModelAttribute标签使用方法

现象:
在Spring项目中如何使用@ModelAttribute标签

方法:

一:测试@ModelAttribute标签的使用

1:编写一个控制器、其中写了四个方法,
1个不使用@RequestMapping标记的方法为start,
另外3个方法使用@ModelAttribute标记
且两个被@ModelAttribute标记的方法放在start方法前面
一个放在后面,用于测试执行的顺序
Spring的@ModelAttribute标签使用方法_第1张图片

2:启动项目、浏览器直接访问start方法
这里写图片描述

3:查看控制器中各方法执行的顺序
Spring的@ModelAttribute标签使用方法_第2张图片

理解:
部署后运行,浏览器访问start方法,查看控制台输出,这个时候你会发现,后台控制器并没有直接进入start的路径,而是先执行了被@ModelAttribute标记的init方法。经过测试可以这么理解,当同一个controller中有任意一个方法被@ModelAttribute注解标记,页面请求只要进入这个控制器,不管请求哪个方法,均会先执行被@ModelAttribute标记的方法,且多个被@ModelAttribute标记的方法都会被执行,且按照从上往下执行,最后进入被请求的方法。。所以我们可以用@ModelAttribute注解的方法做一些初始化操作,

二:@ModelAttribute标签的使用
1:建立一个基础的控制器
Spring的@ModelAttribute标签使用方法_第3张图片
2:其他控制器继承上面的基础控制器。编写setReqAndRes 方法 用@ModelAttribute标记。在方法中将response。request注入属性完成初始化

Spring的@ModelAttribute标签使用方法_第4张图片
3:在其他控制器则无需每个方法都注入request、response。而可以直接使用
Spring的@ModelAttribute标签使用方法_第5张图片
4:基础控制器也可以完成其他的操作
Spring的@ModelAttribute标签使用方法_第6张图片

你可能感兴趣的:(Spring)