使用的部分记录下来(希望以后弄明白,再回过头来补充上),见谅!以下讲解都是在MAC OS环境下进行的!
4个注解的使用,关于GET和POST等请求方式放在数据库篇进行讲解。
一、@RestController
@RestController是一个组合注解,在spring4版本后出现。它的功能,是可以由@Controller和@ResponseBody搭配代替的。引用shuaiflying的博客:它的功能就是
- 使用@Controller 注解,在对应的方法上,视图解析器可以解析return 的jsp,html页面,并且跳转到相应页面
- 若返回json等内容到页面,则需要加@ResponseBody注解
所以@RestController就是解析return的jsp,html页面,并跳转到相应页面,此外还可以返回json等内容到页面(json是一种以字符串保存各种类型内容的形式)
图1
如图1所示,使用@RestController后,我们可以在HelloController里进行网页之间的跳转和数据值的传输。
二、@RequestMapping
1、这个注解的作用就是将控制器类(HelloController)处理的所有请求都被映射到value属性所指示的路径下,通过访问这个地址路径来调用方法。
127.0.0.1:8080/hello
图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所示。
图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.
图4
图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是默认值
图6
图7
但''?id=''的格式要有,不然就会报错。