SpringMVC常用注解
文章目录
@RequestParam
前端传参必须和后端Controller方法中定义的变量同名,如果不同名,则获取不到,看一下下面的这个例子:
当前端参数和后端参数名称一致时,是可以获取到的:
这时,把前端设置为name,再次查看:
这时候加上注该注解:
需要注意的是,该value是必须的,如果没有该参数,则映射就会失败,出现 bad request
@RequestBody
该注解用于拿到所有的请求体,既然是请求体,肯定只针对于post方法,该注解主要用于异步时获取json数据,下面做演示:
@PathVariable
PathVariable主要用于获取url中占位符的值,用法如下:
@RequestHeader
获取请求头信息,演示如下:
@CookieValue
获取指定的Cookie的值,演示获取SessionId的值
@ModelAttribute
在方法执行之前执行做一些事情,可以用来修饰方法,也可以用来修饰参数,先来看一下用法:
上图有两个方法,访问第一个,会在第一个执行前,先访问有@ModelAttribute修饰的方法
说一个常用的用法:我们在表单提交的时候,可能提交的不是完整的信息,那么我们先拿到一部分信息后,在数据库中进行查询,有点拦截器的意思,示例如下:
pojo类:
前端:
controller:
result:
当然,也可以将其作用在参数上,不过这时需要把对象put进一个map中
@SessionAttribute
该注解作用于类上,用于将数据写入Session
在servlet的学习中,可以知道通过request来获取session,这种方式会使耦合度提高,所以我们需要使用Spring提供的类,来进行域的传值,在springMVC中,Model就可以用来给一次请求传值,域对象是request,示例如下:
访问时直接打印requestScope
那么如何将值放入session,在Controller类上添加注解SessionAttribute
这时,也会将这份值放入session,这时打印sessionScope来看一下
如何从Session中取值?
如何删除session