@ModelAttribute、@SessionAttributes与@SessionAttribute

(1)、@ModelAttribute主要有两种用法:
非功能:是指没有去加上@RequestMapping在控制器里是一个普通的类/方法,不属于Junit 要去处理某个URL的方法。对于这种你加了这个之后其他的之前都会执行这个方法。比如:前面学的 Junit4测试里面的@Before很类似,你在处理下面所有方法之前有这个方法的都会先执行一遍再 执行下面的方法
第一种用法 :标注在非功能方法上,每次执行方法时都会先执行@ModelAttribute注解的方法
@ModelAttribute注解的方法可以:
①在参数中获取使用Model,HttpServletRequest,HttpServletResponse等
②也可以正常获取请求的数据
③可以向Model、HttpServletRequest中添加数据
若该方法有返回值时:自动把返回的数据添加到Modal中,对于此时的Key值有两种情况
①如果@ModelAttribute没有指定value值,那么添加的key就是类型名称首字母小写
②如果指定了value值会在①的基础上额外添加一个,key就是指定的值
第二种用法:用在方法的参数上,将注解的参数添加到Model中,Key值有两种情况
①若@ModelAttribute未指定value值,那么Key值就是类型名称首字母小写
②若@ModelAttribute指定value值,那么key值就是指定的值

@ModelAttribute注解:
一、使用@ModelAttribute注解的方法,返回void 。
在@ModelAttribute注解的方法中也可以
①在参数中获取使用Model,HttpServletRequest,HttpServletResponse等。
②也可以正常获取请求的数据
③可以向Model、HttpServletRequest中添加数据
二、使用@ModelAttribute注解的方法,有返回值时和返回void是基本一致,多了一个功能:自动把返回的数据添加到Modal中,①如果@ModelAttribute没有指定value值,那么添加的key就是类型名称首字母小写②如果指定了value值会在①的基础上额外添加一个,key就是指定的值
显示结果:如果@ModelAttribute注解在参数上的使用,作用如下:将注解的参数添加到Model中,Key值有两种情况分别是:
①若@ModelAttribute未指定value值,那么Key值就是类型名称首字母小写
②若@ModelAttribute指定value值,那么key值就是指定的值

(2)、@SessionAttributes与@SessionAttribute的使用
在springMVC中两个长得很是相识的注解是:@SessionAttributes 和 @SessionAttribute。
@SessionAttributes用于在请求之间的HTTP Servlet会话中存储model属性。 它是类型级别的注解,用于声明特定控制器使用的会话属性。会筛选该控制器下的所有添加到Model中的数据,将符合筛选条件的数据自动添加到Session中。
@SessionAttribute 用在方法的形参上,从session中获取指定名称的的数据,并把数据给形参参数。
在页面上显示:@SessionAttribute从session中获取指定名称的的数据,并把数据给形参参数required属性默认为true,如果获取的数据不存在——400错误

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值