mvc html 注解,Spring MVC的注解二

Spring MVC的注解二

概述

Spring从2.5版本开始引入注解,虽然版本不断变化,但是注解的特性一直被延续下来并不断进行扩展,这里就来记录一下Spring MVC中常用的注解,本文承接前文继续记录@PathVariable、@RequestHeader和@CookieValue三个注解。

@PathVariable注解

该注解可以方便的获得请求URL中的动态参数。只有一个属性value,类型为String,表示绑定的名称,若省略默认绑定同名参数。

1 @RequestMapping(value = "/login/{username}")

2 public String login(@PathVariable String username){

3 ...

4 }

若请求的URL为:“http://localhost:8080/user/login/jack”,通过该注解将jack绑定到username参数上。

@RequestHeader注解

该注解用于将请求头信息数据映射到功能处理方法的参数。

@RequestHeader注解支持的常用属性:

属性

类型

说明

name

String

指定请求头绑定的名称

value

String

name属性的别名

required

boolean

参数是否必须绑定

defaultValue

String

没有传递参数时,参数的默认值

@CookieValue注解

该注解用于将请求的Cookie数据映射到功能处理方法的参数。

@CookieValue注解支持的常用属性:

属性

类型

说明

name

String

指定请求头绑定的名称

value

String

name属性的别名

required

boolean

参数是否必须绑定

defaultValue

String

没有传递参数时,参数的默认值

注解示例程序

示例程序在前文项目SpringMVCProject的基础上进行完善编写。

在com.snow.dcl.controller包下创建DataBindController类文件,编写如下程序:

1 @Controller

2 public class DataBindController {

3 private static final Log LOGGER = LogFactory.getLog(DataBindController.class);

4

5 @RequestMapping("/PathVariableTest/{userId}")

6 public void pathVariableTest(@PathVariable Integer userId) {

7 LOGGER.info("通过@PathVariable获取数据" + userId);

8 }

9

10 @RequestMapping("/RequestHeaderTest")

11 public void requestHeaderTest(@RequestHeader("User-Agent") String userAgent) {

12 LOGGER.info("通过@RequestHeader获取数据" + userAgent);

13 }

14

15 @RequestMapping("/CookieValueTest")

16 public void cookieValueTest(@CookieValue(defaultValue = "DCLSNOWID") String sessionId) {

17 LOGGER.info("通过@CookieValue获取数据" + sessionId);

18 }

19 }

20

启动TomcatServer,启动完成后,打开浏览器输入:http://localhost:8080/PathVariableTest/1001,虽然浏览器页面会报404的错误,是因为没有返回的jsp文件,但是看控制台打印的日志信息即可。

1 信息 [http-nio-8080-exec-6] com.snow.dcl.controller.DataBindController.pathVariableTest 通过@PathVariable获取数据1001

c65b2166217a43791e6f6db28f35ac22.png

在浏览器中重新输入:http://localhost:8080/RequestHeaderTest,查看控制台信息。

1 信息 [http-nio-8080-exec-9] com.snow.dcl.controller.DataBindController.requestHeaderTest 通过@RequestHeader获取数据Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36

9e8cb35a91324587875afe59b857cb6e.png

在浏览器中重新输入:[ttp://localhost:8080/CookieValueTest,查看控制台信息。

1 信息 [http-nio-8080-exec-2] com.snow.dcl.controller.DataBindController.cookieValueTest 通过@CookieValue获取数据DCLSNOWID

75456a2b224abdf27734926e45992f33.png

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值