SpringBoot入门(三)Controller的使用

浅析

@Controller:处理http请求
@RestController:Spring4之后新加的注解,用于代替原来@ResponseBody +@Controller的组合
@RequestMapping:配置url映射(用户通过访问某个url访问到我们某个方法)

@Controller

原来的代码

@RestController
public class HelloController {
    @Autowired
    private PersonProperties mPersonProperties;

    @RequestMapping(value="/helloctrl", method=RequestMethod.GET)
    public String say() {
        return "name:"+mPersonProperties.getName()+"age:"+mPersonProperties.getAge();
    }
}

使用@Controller(仅为了解。因为后面一般还是使用@RestController)
1、pom.xml中添加spring官方模板

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

2、在src/main/resources/template文件夹下创建index.html

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8"></meta>
<title>Insert title here</title>
</head>
<body>
    Hello Controller
</body>
</html>

3、修改@RestController为@Controller,修改返回值为index

@Controller
public class HelloController {
    @Autowired
    private PersonProperties mPersonProperties;

    @RequestMapping(value="/helloctrl", method=RequestMethod.GET)
    public String say() {
        return "name:"+mPersonProperties.getName()+"age:"+mPersonProperties.getAge();
    }
}

4、运行结果
这里写图片描述

@RestController=@Controller+@ResponseBody组合

@Controller
@ResponseBody
public class HelloController {
    @Autowired
    private PersonProperties mPersonProperties;

    @RequestMapping(value="/helloctrl", method=RequestMethod.GET)
    public String say() {
        return mPersonProperties.getName();
    }
}

这里写图片描述

@RequstMapping配置url

这里写图片描述
访问路径可以是
http://localhost:8088/controller/helloctrl
或者
http://localhost:8088/controller/hi

如何处理url中的参数


@PathVariable:获取url中的数据
@RequestParam:获取请求参数的值
@GetMapping:组合注解(简化@RequestMapping(value= {“/helloctrl”}, method=RequestMethod.GET)=@GetMapping(value= {“/helloctrl”}))

@PathVariable

@RestController
@RequestMapping("/controller")
public class HelloController {
    @Autowired
    private PersonProperties mPersonProperties;

    @RequestMapping(value= {"/helloctrl/{id}"}, method=RequestMethod.GET)
    public String say(@PathVariable("id") Integer id) {
        return "id"+id;
    }
}

这里写图片描述
还可以如下写:

@RequestMapping(value= {"/{id}/helloctrl"}, method=RequestMethod.GET)

访问地址

http://localhost:8088/controller/100/helloctrl

设置默认值

@RestController
@RequestMapping("/controller")
public class HelloController {
    @Autowired
    private PersonProperties mPersonProperties;

    @RequestMapping(value= {"/helloctrl"}, method=RequestMethod.GET)
    //required是否一定要传递值,设置为false,不需要
    public String say(@RequestParam(value="id",required=false,defaultValue="10") Integer myid) {
        return "id"+myid;
    }
}

这里写图片描述

@GetMapping

@RestController
@RequestMapping("/controller")
public class HelloController {
    @Autowired
    private PersonProperties mPersonProperties;

    @GetMapping(value="/helloctrl")
    public String say(@RequestParam(value="id",required=false,defaultValue="20") Integer myid) {
        return "id"+myid;
    }
}

与@GetMapping相对应的还有@PostMapping、@PutMapping、@DeleteMapping

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值