SpringBoot入门之Controller的开发

这一篇主要总结一下,SpringBoot中关于Controller的相关开发。

我们知道Controller是用来处理Http请求的,这里主要总结一下@RestController、@Controller、@ResponseBody、@RequestMapping、@GetMapping、@PathVariable、@RequestParam以及@RequestBody注解。


1、@RestController、@ResponseBody、@Controller

@RestController 是Spring4之后新增的注解,这是一种组合注解,原来返回JSON或者响应需要@ResponseBody配合@Controller使用(@ResponseBody就是用来标记返回值是作为响应直接返回的,如果返回值是一个对象类型,那么它就会转成JSON),而现在只需要一个@RestController 注解就可以代替,下图两者是等同的。

如果我们不加@RestController或者使用@Controller时不加@ResponseBody,那么返回值是String的时候,SpringBoot会认为这是一个页面路径,会通过DispatcherServlet(前端控制器)去找该页面,显然我们不存在就会报错,这和SpringMVC是一样的,我们可以测试返回一个页面,这里使用模板引擎thmeleaf,在pom中引入依赖,

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
        </dependency>

然后新增一个html,

2、@RerquestMapping、@GetMapping

@RerquestMapping 就是用来配置URL映射的相关信息,可以简单的加在类上,也可以加在方法上,value用来说明URL,method用来说明请求方式。

如果说想要/say和/hi多个URL都能访问到,只需要设置value为集合就行,如下:

对于method而言, 

 对于多种请求方式,Spring提供了组合注解简化开发,如下:

 二者时等同的。

3、@PathVariable

@PathVariable 是用来获取url中的数据

这样在通过/localhost:8080/say/100时就可以取到100了。 

4、@RequestParam

@RequestParam 用来获取请求参数中的值,如get方式URL中?后的各个参数或者post提交的原生form表单值。该注解有几种属性,value为参数名称,defaultValue为参数默认值,required用来说明参数是否必须。

上图说明,id参数可以不传,不传的话默认给值0。

像上图中不指定required=false的话,默认是true,也就是参数是必传的,若不传的话,是映射不到这个Controller,可能404

需要注意:默认@RequestParam也可以省略,如下图所示,这种其实就相当于@RequestParam(value="id", required=false),参数可传可不传,但是不传的话,不会给默认值。

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值