springmvc02常用注解

常用注解

1 RequestParam

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

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

1.1 使用说明

jsp 中的代码:

 

控制器中的代码:

2 RequestBody

2.1 使用说明

作用: 用于获取请求体内容。直接使用得到是 key=value&key=value...结构的数据。 get 请求方式不适用。

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

2.2 使用示例

post 请求 jsp代码:

 

get 请求 jsp代码:

控制器代码:

get 请求运行结果:null

post 请求运行结果: 

3 PathVaribale

3.1 使用说明

作用: 用于绑定 url 中的占位符。例如:请求 url 中 /delete/{id},这个{id}就是 url 占位符。 url 支持占位符是 spring3.0 之后加入的。是 springmvc 支持 rest 风格 URL 的一个重要标志。

属性: value:用于指定 url 中占位符名称。 required:是否必须提供占位符。

3.2 使用示例

jsp 代码:

控制器代码: 

运行结果:

3.4 基于 HiddentHttpMethodFilter 的示例

作用: 由于浏览器 form 表单只支持 GET 与 POST 请求,而 DELETE、PUT 等 method 并不支持,Spring3.0 添加了一个过滤器,可以将浏览器请求改为指定的请求方式,发送给我们的控制器方法,使得支持 GET、POST、PUT与 DELETE 请求。

使用方法:

第一步:在 web.xml 中配置该过滤器。

第二步:请求方式必须使用 post 请求。

第三步:按照要求提供_method 请求参数,该参数的取值就是我们需要的请求方式。

jsp 中示例代码: 

控制器中示例代码:

post 请求:保存 

put 请求:更新

post 请求:删除

post 请求:查询

4 RequestHeader

4.1 使用说明

作用: 用于获取请求消息头。

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

4.2 使用示例

jsp 中代码:

 

控制器中代码:

运行结果:

5 CookieValue

5.1 使用说明

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

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

5.2 使用示例

jsp 中的代码:  

控制器中的代码

运行结果:

6 ModelAttribute

6.1 使用说明

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

出现在方法上,表示当前方法会在控制器的方法执行之前,先执行。它可以修饰没有返回值的方法,也可 以修饰有具体返回值的方法。 出现在参数上,获取指定的数据给参数赋值。

属性:

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

应用场景: 当表单提交数据不是完整的实体类数据时,保证没有提交数据的字段使用数据库对象原来的数据。 例如: 我们在编辑一个用户时,用户有一个创建信息字段,该字段的值是不允许被修改的。在提交表单数 据是肯定没有此字段的内容,一旦更新会把该字段内容置为 null,此时就可以使用此注解解决问题。

6.2 使用示例

6.2.1 基于 POJO 属性的基本使用:

jps 代码:  

运行结果:

6.2.2 基于 Map 的应用场景示例 1:ModelAttribute 修饰方法带返回值

需求: 修改用户信息,要求用户的密码不能修改 

jsp 的代码:

  

控制器的代码:

查询数据库中用户信息 

模拟修改用户方法

模拟去数据库查询

运行结果:

执行流程大概为:先执行ModelAttribute修饰的方法,拿到输入的数据之后给变量赋值,再去数据库中拿到原始数据并覆盖输入的相同变量名的数据,然后输出。

未用ModelAttribute修饰的方法,直接将读取的数据赋值并输出。

6.2.3 基于 Map 的应用场景示例 1:ModelAttribute 修饰方法不带返回值

需求: 修改用户信息,要求用户的密码不能修改 

jsp 中的代码:

  

控制器中的代码:

查询数据库中用户信息 

模拟修改用户方法

模拟去数据库查询

运行结果:

7 SessionAttribute

7.1 使用说明

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

属性: value:用于指定存入的属性名称

 type:用于指定存入的数据类型。

7.2 使用示例

jsp 中的代码:

  

控制器中的代码:

你可能感兴趣的:(springmvc02常用注解)