Struts2 là một pull-MVC(hoặc MVC2). Mô hình Model-View-Controller trong Struts2 được thực hiện với 5 thành phần cốt lõi sau đây:
- Actions
- Interceptors
- Value Stack / OGNL
- Results / Result types
- View technologies
Struts2 hơi khác so với mô hình MVC truyền thống trong đó Action chiếm vai trò của Model thay vì Controller.
Biểu đồ trên mô tả các M odel, V iew và C ontroller cho kiến trúc mức cao Struts2. Controller được thực hiện với bộ lọc servlet Struts2 cũng như các interceptor, Model được thực hiện với các hành động, và View là sự kết hợp của các kiểu kết quả và các kết quả. Giá trị Stack và OGNL cung cấp thread, liên kết chung và cho phép tích hợp với các thành phần khác.
Ngoài các thành phần trên, sẽ có rất nhiều thông tin liên quan đến cấu hình. Cấu hình cho các ứng dụng web, cũng như cấu hình cho các action, interceptor, result, vv
Đây là kiến trúc tổng quan của mô hình Struts2 MVC. Chi tiết về từng thành phần sẽ được đề cập đến trong các bài tiếp theo.
Nội dung chính
Vòng đời của một request
Dựa trên digram ở trên, có thể giải thích vòng đời của một request của người dùng trong Struts2 như sau:
- Người dùng gửi request tới máy chủ để yêu cầu một số tài nguyên (ví dụ các trang).
- FilterDispatcher xem xét yêu cầu và sau đó xác định action thích hợp.
- Chức năng interceptor đã cấu hình được áp dụng như xác nhận hợp lệ, upload file, vv
- Action đã chọn được thực thi để thực hiện thao tác được yêu cầu.
- Một lần nữa, interceptor đã cấu hình được áp dụng để thực hiện bất kỳ post-processing nếu cần thiết.
- Cuối cùng kết quả được chuẩn bị bởi view và trả kết quả cho người dùng.