1. 程式人生 > 其它 >spring boot 讀書筆記5-Spring Boot中的MVC支援

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";
}