1. @PathVariable và @RequestParam
- @PathVariable là annotation để lấy giá trị tham số là một thành phần trong đường dẫn.
- @RequestParam là annotation để lấy giá trị tham số là biến trong query string.
1.1 @PathVariable
@GetMapping("/student/{id}")
public String getUser(@PathVariable("id") Long id) {
return "Student id " + id;
}

1.2 @RequestParam
@GetMapping("/studentParam")
public String getUserByParam(@PathParam("id") Long id) {
return "Student id param " + id;
}

2. @ModelAttribute và @RequestBody
- @ModelAttribute sử dụng khi request gửi tới có dạng form data, ví dụ: 1 trang html submit data đến server sẽ post request tới server dưới dạng form.
- @RequestBody được sử dụng để nhận request dạng JSON.
Để ví dụ mình định nghĩa một class StudentRequest như sau:
package com.example.demo;
public class StudentRequest {
private String name;
private String email;
}
2.1 @ModelAttribute nhận request dạng form data
@PostMapping("/requestForm")
public String requestForm(@ModelAttribute StudentRequest student) {
return student.toString();
}

2.2 @RequestBody nhận request dạng json
@PostMapping("/requestJson")
public String requestJson(@RequestBody StudentRequest student) {
return student.toString();
}

Be First to Comment