springmvc常用5种注解_Spring MVC竟然有5种参数绑定的方式?你知道几种?

springmvc常用5种注解_Spring MVC竟然有5种参数绑定的方式?你知道几种?_第1张图片
SpringMVC参数绑定,简单来说就是将客户端请求的key/value数据绑定到controller方法的形参上,然后就可以在controller中使用该参数了

下面通过5个常用的注解演示下如何进行参数绑定:

1. @PathVariable注解

@PathVariable 是用来获得请求url中的动态参数的,可以将URL中的变量映射到功能处理方法的参数上,其中URL 中的 {xxx} 占位符可以通过@PathVariable(“xxx“) 绑定到操作方法的入参中。

示例代码:

 @ResponseBody @RequestMapping("/testUrlPathParam/{param1}/{param2}") public void testUrlPathParam(HttpServletRequest request, @PathVariable String param1, @PathVariable String param2) { System.out.println("通过PathVariable获取的参数param1=" + param1); System.out.println("通过PathVariable获取的参数param2=" + param2); }

Postman发送请求截图:

springmvc常用5种注解_Spring MVC竟然有5种参数绑定的方式?你知道几种?_第2张图片

发送请求截图

输出结果:

通过PathVariable获取的参数param1=1通过PathVariable获取的参数param2=2
springmvc常用5种注解_Spring MVC竟然有5种参数绑定的方式?你知道几种?_第3张图片

2.@RequestHeader注解

@RequestHeader 注解,可以把Request请求header部分的值绑定到方法的参数上。

示例代码:

 @ResponseBody @RequestMapping("/testHeaderParam") public void testHeaderParam(HttpServletRequest request, @RequestHeader String param1) { System.out.println("通过RequestHeader获取的参数param1=" + param1); }

Postman发送请求截图:

springmvc常用5种注解_Spring MVC竟然有5种参数绑定的方式?你知道几种?_第4张图片

发送请求截图

输出结果:

通过RequestHeader获取的参数param1=abc

3.@CookieValue注解

@CookieValue 可以把Request header中关于cookie的值绑定到方法的参数上。

示例代码:

 @ResponseBody @RequestMapping("/testCookieParam") public void testCookieParam(HttpServletRequest request, HttpServletResponse response, @CookieValue String sessionid) { System.out.println("通过CookieValue获取的参数sessionid=" + sessionid); }

Postman发送请求截图:

springmvc常用5种注解_Spring MVC竟然有5种参数绑定的方式?你知道几种?_第5张图片

发送请求截图

输出结果:

通过CookieValue获取的参数sessionid=ebef978eef6c46f8a95cc0990d2d360a

4.@RequestParam注解

@RequestParam注解用来处理Content-Type: 为 application/x-www-form-urlencoded编码的内容。提交方式为get或post。(Http协议中,form的enctype属性为编码方式,常用有两种:application/x-www-form-urlencoded和multipart/form-data,默认为application/x-www-form-urlencoded);

@RequestParam注解实质是将Request.getParameter() 中的Key-Value参数Map利用Spring的转化机制ConversionService配置,转化成参数接收对象或字段,

get方式中queryString的值,和post方式中body data的值都会被Servlet接受到并转化到Request.getParameter()参数集中,所以@RequestParam可以获取的到;

该注解有三个属性: value、required、defaultValue; value用来指定要传入值的id名称,required用来指示参数是否必录,defaultValue表示参数不传时候的默认值。

示例代码:

 @ResponseBody @RequestMapping("/testRequestParam") public void testRequestParam(HttpServletRequest request, @RequestParam(value = "num

你可能感兴趣的:(springmvc常用5种注解,获取url参数的方法)