spring boot 读书笔记5-Spring Boot中的MVC支持

常用注解

@RestController

返回内容json格式,适合前后端分离,如果不是前后端分离需要返回内容时,选用@Controller,比如使用Thymeleaf模板

@RequestMapping

是一个用来处理请求地址映射的注解,可用于类和方法上,常用3个数据

  • value 属性:指定请求的实际地址,value 可以省略不写
  • method 属性:指定请求的类型,主要有 GET、PUT、POST、DELETE,默认为 GET
  • produces属性:指定返回内容类型,如 produces = “application/json; charset=UTF-8”
@RestController
@RequestMapping(value = "/test", produces = "application/json; charset=UTF-8")
public class TestController {

    @RequestMapping(value = "/get", method = RequestMethod.GET)
    public String testGet() {
        return "success";
    }
}

  

也可以使用 @GetMapping("/get"),@PostMapping代替

获取 url 参数

@PathVariable

 

@GetMapping("/user/{id}")
public String testPathVariable(@PathVariable Integer id) {
	System.out.println("获取到的id为:" + id);
	return "success";
}

  

@RequestParam

获取请求参数

@RequestMapping("/user")
public String testRequestParam(@RequestParam(value = "idd", required = false) Integer id) {
	System.out.println("获取到的id为:" + id);
	return "success";
}

  

常用属性

  • required 属性:true 表示该参数必须要传,否则就会报 404 错误,false 表示可有可无。
  • defaultValue 属性:默认值,表示如果请求中没有同名参数时的默认值。

如果表单太多,可以创建表单所需实体类

public class User {
    private String userName;
    private String password;

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }
}

  

@RestController
@RequestMapping("/test")
public class MyUser {
    private User user;
    @RequestMapping("/userName")
    public String getUserName(User user){
        return user.getUserName();
    }
}

  

访问http://127.0.0.1:8080/test/userName?userName=test 实体中的属性名和表单中的参数名一致即可

 

@RequestBody 

注解用于接收前端传来的实体,接收参数也是对应的实体,josn数据提交

@PostMapping("/user")
public String testRequestBody(@RequestBody User user) {
	System.out.println("获取到的username为:" + user.getUsername());
	System.out.println("获取到的password为:" + user.getPassword());
	return "success";
}

  

posted @ 2022-04-02 16:23  妇愁者纞萌  阅读(42)  评论(0编辑  收藏  举报