SpringBoot Controller
控制器
-
SpringBoot提供了@Controller和@RestController兩種注解來標識此類負責接收和處理HTTP請求,
-
如果請求的是頁面和資料,使用@Controller注解即可;如果只是請求資料,則可以使用@RestController注解,
@RestController的用法
-
默認情況下,@RestController注解會將回傳的物件資料轉換成JSON格式,
路由映射:控制器接收前端的請求
-
@RequestMapping注解主要負責URL的路由映射,它可以添加在Controller類或者具體的類方法上,
-
@RequestMapping(value="https://www.cnblogs.com/xxx", method=RequestMethod.GET)等價于@GetMapping("/xxx")
引數傳遞
-
Get方式
@RestController //加上這個注解意味著這個類已經變成一個控制器了,可以接收客戶端的請求了
public class HelloController {
?
// http://localhost:8080/hello?nickname=小白 單個引數
// http://localhost:8080/hello?nickname=小白&phone=10086 多個引數情況
@RequestMapping("/hello") //這個注解代表之后瀏覽器發起Get請求之后來訪問這個方法
public String hello(String nickname){
return "hello!"+nickname;
}
?
?
}
?
上面這個方法的引數名要與前端請求的引數名稱一致,或者也可以不一致,但是要在方法頭里面加上:
@RequestParam("nickname") //這個nickname與前端請求的引數名稱一致,然后后端方法的引數名稱可以任意,但是這種情況下引數一定要傳遞(也可以不傳遞,此時可寫成@RequestParam(value="https://www.cnblogs.com/qiulimei/p/nickname", required=false)),否則此方法將不會被訪問,前一種方式方法是可以被訪問到的,
@RestController //加上這個注解意味著這個類已經變成一個控制器了,可以接收客戶端的請求了
public class HelloController {
?
// http://localhost:8080/hello?nickname=小白 單個引數
// http://localhost:8080/hello?nickname=小白&phone=10086 多個引數情況
@RequestMapping("/hello") //這個注解代表之后瀏覽器發起Get請求之后來訪問這個方法
public String hello(@RequestParam("nickname") String nickname){
return "hello!"+nickname;
}
}
-
Post方式
method = RequestMethod.POST
如果前端傳遞的資料是json格式,那么需要在方法頭中加上@RequestBody,如下:
傳參格式:(前后端引數名字及型別要一致)
{
"name": "zhangsan",
"pwd": "123"
}
@RequestMapping(value = "/postTest2", method = RequestMethod.POST)
public String postTest2(@RequestBody User user){//注解在這里!!!
System.out.println(user.getName());
System.out.println(user.getPwd());
return "Post請求2";
}
普通情況:前后端引數名要一致
@RequestMapping(value = "/postTest1", method = RequestMethod.POST)
public String postTest1(User user){
System.out.println(user.getName());
System.out.println(user.getPwd());
return "Post請求";
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/546298.html
標籤:Java
