使用的部分记录下来(希望以后弄明白,再回过头来补充上),见谅!以下讲解都是在MAC OS环境下进行的!

4个注解的使用,关于GET和POST等请求方式放在数据库篇进行讲解。

一、@RestController

  @RestController是一个组合注解,在spring4版本后出现。它的功能,是可以由@Controller和@ResponseBody搭配代替的。引用shuaiflying的博客:它的功能就是

  1. 使用@Controller 注解,在对应的方法上,视图解析器可以解析return 的jsp,html页面,并且跳转到相应页面
  2. 若返回json等内容到页面,则需要加@ResponseBody注解

  所以@RestController就是解析return的jsp,html页面,并跳转到相应页面,此外还可以返回json等内容到页面(json是一种以字符串保存各种类型内容的形式)


spring boot测试controller接口 springboot调用controller_变量名

图1

  如图1所示,使用@RestController后,我们可以在HelloController里进行网页之间的跳转和数据值的传输。

二、@RequestMapping

  1、这个注解的作用就是将控制器类(HelloController)处理的所有请求都被映射到value属性所指示的路径下,通过访问这个地址路径来调用方法。

127.0.0.1:8080/hello


spring boot测试controller接口 springboot调用controller_html页面_02

图2

   图2中,@RequestMapping(value = "/hello"),就完成了配置,而后面还有一个method属性是用来确定调用方式的(GET、POST、DELETE、PUT等)

多个不同的地址来访问这个方法,用这个注解也可以做到,

{"/hello","hi"})  

127.0.0.1:8080/hello  以及  127.0.0.1:8080/hi

  来访问。

    当然也可以将@RequestMapping()直接写在类外,这样就相当于为整个类写地址(url)了,如图3所示。


spring boot测试controller接口 springboot调用controller_html页面_03

图3

method属性,是用来确定调用方式的,这个调用方式我在数据库篇会进行详细的讲解,这里就讲讲如何使用。如果像上面那样不写mothod,默认get和post都行,但不推荐!因为不安全!而有一种组合注解可以让你省略写:GetMapping()和PostMapping()分别代表在设置url的同时,设置get和post调用方式,也就是你不需要再写mothod属性了。

    3、还用就是通过url来传值,这个操作我们也经常会做,比如什么页号信息呀、id号之类的。

/{id}")  ,其中id就是传输的变量名,知道了如何传输,那么就要知道如何获取。

三、@PathVariable和@RequestParam

  这两种都是获取值得注解。

  1、先说说简单的@PathVariable,这种获取方式,是直接从url里获取的,

/{id}") ,通过@PathVariable("id") Integer myid 的格式来获取,下面只要引用myid这个变量名就可以获得id的值了,见下图4和图5.


spring boot测试controller接口 springboot调用controller_json_04

图4

spring boot测试controller接口 springboot调用controller_变量名_05

图5

@PathVariable,它必须依赖@RequestMapping进行传值 。

2、@RequestParam

  这种传值方式比较经典,首先它不需要依赖@RequestMapping,它需要再 url里按一定格式进行传值。
  拿@RequestMapping(value = "/hello/{id}")做例子,就可以把/{id}去掉,写成:@RequestMapping(value = "/hello")

?id=250

"?id=value",一个问号然后加变量名,然后=需要的值,@RequestMapping(value,required,defaultValue),有三个属性,第一个就是值的变量名,required是指是否一定要传值,defaultValue是默认值

 


spring boot测试controller接口 springboot调用controller_变量名_06

图6

spring boot测试controller接口 springboot调用controller_html页面_07

图7

但''?id=''的格式要有,不然就会报错。