Request Parameter và Path Variable

Request Parameter và Path Variable

springboot

Cả Request ParameterPath Variable đều sử dụng để gửi giá trị tới server. Cả hai đều là một phần của URL. Chúng ta sẽ cùng tìm hiểu các khái niệm, thuộc tính và sự khác nhau của chúng ngay sau đây.

1. Request Parameter

Request Parameter có dữ liệu theo cặp (key = value) được phân tách bằng dấu &.

Ví dụ: URL sau mang một request parameter là name với giá trị là techmely http://localhost:8080/techmely?name=techmely

  • key = name value = techmely

URL mang nhiều request parameter được biểu diễn trên như sau http://localhost:8080/techmely?param1=techmely&param2=hoclaptrinh

  • key = param1 value = techmely
  • key = param2 value = hoclaptrinh

Để nhận giá trị của một request parameter sử dụng annotation @RequestParam như sau:

public String getValueWithRequestParam(@RequestParam(value="param1", required=true) String param1){
    ...
}

Ở đây annotation @RequestParam để khai báo là sẽ sử dụng nó để lấy các giá trị trên URL. Một số thuộc tính của annotation :

  • value="param1" : Khai báo để lấy giá trị tên là "param1" trên trình duyệt. Như vậy ứng với giá trị "techmely" trên trình duyệt sẽ gán vào giá trị String param1
  • require = true : Thì chúng ta bắt buộc là trên url phải có tham số param1.

2. Path Variable

Với @PathVariable không cần key truyền trên URL chỉ cần value.

Ví dụ: URL sau mang giá trị là hoclaptrinh được gán trên URL http://localhost:8080/techmely/hoclaptrinh

value = hoclaptrinh

Để sử dụng @PathVariable cần thêm biến thuộc tính value của annotation @RequestMapping

@RequestMapping(value="/getValueWithPathVariable/{name}",method = GET)
public String getValueWithPathVariable(@PathVariable String name, Model model){
    model.addAttribute("name", name);
    return "index";
}
  • value=”/getValueWithPathVariable/{name} :Khi sử dụng nó sẽ map với trình duyệt có định dạng là getValueWithPathVariable/hoclaptrinh
  • @PathVariable chúng ta sẽ lấy giá trị là hoclaptrinh từ trình duyệt và gắn vào biến String name.

3. Kết luận

Cả 2 cách trên đều thực hiện chung một nhiệm vụ là lấy các tham số từ người dùng truyền lên. Bạn sử dụng cái nào cũng làm được mục đích của mình. Tuy nhiên tuỳ vào thiết kế của một hệ thống mà lựa chọn Request Param hoặc Path Variable để sử dụng mới đem lại hiệu quả cao

Bài trước
left Bài trước
left Lớp Model và ModelMap
Bài tiếp theo
Form login đơn giản right
Bài tiếp theo right
Avatar Techmely Team
VIẾT BỞI

Techmely Team