Tổng quan về controller trong Spring MVC

Trong mô hình MVC, controller là nơi nhận request từ người dùng, xử lý request, xây dựng dữ liệu cho view (model) và chọn view để trả lại kết quả của cho người dùng. Trong bài viết này, chúng ta sẽ cùng tìm hiểu tổng quan về controller trong Spring MVC và các thành phần của nó nhé các bạn!

Tạo project

Để tiện tìm hiểu, mình sẽ tạo một project Spring MVC mới, bạn nào chưa biết cách tạo thì có thể xem hướng dẫn của mình ở đây nhé!

Project mình tạo có cấu trúc như sau:

Để chạy project này, các bạn có thể tham khảo tại đây.

Kết quả:

Các bạn có tự hỏi làm sao khi chúng ta request đến trang chủ, ứng dụng web của chúng ta có thể trả về kết quả như thế không? Câu trả lời đó là nhờ controller trong Spring MVC đó các bạn!

Trong project mà mình vừa tạo thì lớp HomeController với nội dung như sau:

chính là một controller trong Spring MVC. Nhiệm vụ của lớp này là nhận request từ người dùng đến trang chủ, xử lý request và trả kết quả về cho người dùng.


Các thành phần của controller trong Spring MVC

Nhìn vào lớp HomeController trong project mà chúng ta vừa tạo ở trên, các bạn có thể thấy một controller trong Spring MVC có các thành phần sau:

  • Một annotation @Controller được khai báo cùng với định nghĩa của lớp HomeController.
  • Một annotation @RequestMapping được khai báo cùng với định nghĩa của phương thức home(). Trong annotation này, chúng ta có thuộc tính value để định nghĩa request URL và thuộc tính method để định nghĩa HTTP request method.
  • Phương thức home() trong lớp HomeController đang trả về một chuỗi “home”, chuỗi này định nghĩa tên view sẽ được dùng để hiển thị kết quả request cho người dùng.
  • Trong phương thức home() cũng xây dựng một biến model lưu trữ những dữ liệu cần thiết cho view “home” sử dụng.
  • Phương thức home() cũng đang sử dụng biến locale của đối tượng Locale để lấy dữ liệu về ngày giờ của server đang chạy web của chúng ta.

Trên đây là các thành phần cơ bản của một controller trong Spring MVC.

Thật ra, Spring MVC còn cung cấp cho chúng ta một cách khác để định nghĩa một controller, đó là sử dụng interface org.springframework.web.servlet.mvc.Controller, nhưng ở đây mình chỉ giới thiệu với các bạn cách phổ biến nhất, dễ dùng và dễ hiểu nhất: sử dụng annotation org.springframework.stereotype.Controller.

4.7/5 - (8 bình chọn)

5 thoughts on “Tổng quan về controller trong Spring MVC

Add Comment