springMVC之常用注解

    技术2025-05-04  16

    常用注解

    RequestParam注解作用属性范例 RequestBody注解作用属性范例 PathVaribale注解作用属性范例 RequestHeader注解作用属性范例 CookieValue注解作用属性范例 ModelAttribute注解作用属性范例应用场景示例1——常规演示示例2——有返回值示例2——无返回值 SessionAttribute注解作用属性范例示例一示例二示例三示例四演示结果

    RequestParam注解

    作用

    把请求中指定名称的参数给控制器中的形参赋值。

    属性

    value:请求参数中的名称。 required:请求参数中是否必须提供此参数。默认值:true。表示必须提供,如果不提供将报错。

    范例

    当请求的参数和Controller层方法的参数名字不一时,运行结果为null,所以这里需要使用RequestParam注解,才能获取数据

    更正案例 其他代码不变,在Controller层方法的参数旁添加该注解即可,运行后得到请求的参数。

    RequestBody注解

    作用

    用于获取请求体内容。直接使用得到是键值对结构(key=value&key=value……)的数据。

    属性

    required:是否必须有请求体。默认值:true,当取值为true时,get请求方式会报错。如果取值为false,get请求得到是null。

    范例

    执行结果:

    PathVaribale注解

    作用

    用于绑定url中的占位符。 url支持占位符是spring3.0之后加入的。是springmvc支持restful风格URL的一个重要标志。

    属性

    required:是否必须有请求体。默认值:true,当取值为true时,get请求方式会报错。如果取值为false,get请求得到是null。

    范例

    按照原来的写法,此处当是sid=10,使用该注解后,直接使用占位符作为该位置的请求参数。

    RequestHeader注解

    作用

    用于获取请求消息头

    属性

    value:提供消息头名称 required:是否必须有此消息头

    范例

    CookieValue注解

    作用

    用于把指定cookie名称的值传入控制器方法参数

    属性

    value:指定cookie的名称 required:是否必须有此cookie

    范例

    ModelAttribute注解

    作用

    该注解是SpringMVC4.3版本以后新加入的,它可以用于修饰方法和参数。

    出现在方法上,表示当前方法会在控制器的方法执行之前,先执行。它可以修饰没有返回值的方法,也可以修饰有具体返回值的方法。

    出现在参数上,获取指定的数据给参数赋值。

    属性

    value:用于获取数据的key。key可以说POJO的属性名称,也可以是map结构的key。

    范例

    这里的数据都没有初始化,与下文应用场景对比。

    应用场景

    当表单提交数据不是完整的实体类数据时,保证没有提交数据的字段使用数据库对象原来的数据。

    示例1——常规演示

    这里初始化了名字和日期,其他代码同上

    示例2——有返回值

    由于程序先执行showUser这里的方法再跳转到testModelAttribute方法,所以可以先获取表单中的数据,例如姓名,再根据姓名查询该用户的整条数据,最后再将查询的结果返回到testModelAttribute方法中,这里由于没有创建数据库,所以用新建的User演示,用以替代从数据库查询的结果。

    示例2——无返回值

    SessionAttribute注解

    作用

    用于多次执行控制器方法间的参数共享

    属性

    value:用于指定存入的属性名称 type:用于指定存入的数据类型

    范例

    示例一

    示例二

    在示例一的基础上,把request域中的值存入到session域中,

    这里把示例一的值换成只打印msg,再加上Session域的值

    示例三

    存入值

    示例四

    删除值

    演示结果

    首先点击取出值,获得的值为null 其次存入值, 再取出值,获得了对应的值 最后删除值, 再取出值,又为空

    Processed: 0.009, SQL: 9