Spring Boot教程(6) – 请求映射

以前的例子里有演示过,控制器(Controller)里的方法加上@GetMapping注解,就能够处理对应路径上的GET请求了。除了它,还有对应的@PostMapping、@PatchMapping、@PutMapping和@DeleteMapping等等。这些注解都来源于一个更通用的注解@RequestMapping,字面意思就是请求映射。咱们来看看它的用法:浏览器

图中有一个名为method的注解参数,指明了@RequestMapping处理的是GET请求。若是把这个method注解删掉,那么home方法就会处理发送到”/”路径的全部请求。若是你无心在一个方法里处理多种请求的话,我建议你在注解参数里写明须要处理的HTTP请求类型,或者使用更方便的@GetMapping或者@PostMapping等。app

@RequestMapping不只能够加到方法上,也能够加到类上。加到类上的时候,类中方法所指定的路径都是相对的。post

路径变量

一个连接的某个部分多是动态的,因此你可能须要经过路径变量来获取。@PathVariable就是用来获取路径变量的,路径中的占位符须要用花括号{}包围:ui

能够看到@GetMapping的路径参数里有占位符“userId”,为了获取到它的值,能够给show方法添加一个参数,而且加上@PathVariable注解,咱们能够看到int变量的名字是userId,这样他就会去和路径中的userId占位符匹配。当你像上图那样在浏览器输入地址后,userId变量就获的了值23。23只是我为了演示随便写的数字,他能够是任何数字,只要int存的下。不过要是放个字符串,会提示出错的。3d

若是你不想让int变量名和占位符名称同样,能够给@PathVariable添加注解参数,这样你的int变量就能够随意重构了,以下。cdn

查询参数

网页连接后面是有可能跟上查询参数(Query Parameter)的,这时须要使用@RequestParam注解,他的用法@PathVariable的用法有些相似,都须要给请求处理方法增长参数。对象

若是变量名和查询参数的名称同样的话,@RequestParam的注解参数能够省略。图中展现了省略和不省略两种状况。在浏览器中你若是忘了传递userId参数或者传递的不是数字,会报错的。blog

若是用户忘了传参数,好说,给他个默认值就行:字符串

你也可使用Optional对象来接受参数,经过isPresent方法判断有没有参数传递过来。注意此时@RequestParam的required参数要设为false。get

相关文章
相关标签/搜索