Cấu trúc Struts 2
Struts 2 là một MVC 2 Framework, được tổ hợp bởi rất nhiều thành phần. Mẫu MVC trong Struts 2 bao gồm 5 thành phần cốt lõi, đó là:
Action
Interceptor
Value Stack / OGNL
Result type
Các công nghệ View
Từ các thành phần cốt lõi trên, phần dưới sẽ trình bày cho các bạn về Struts Flow theo hai cách, đó là Basic Flow và Standard Flow. Qua đó giúp bạn có cái nhìn khái quát về vòng đời của Struts.
Struts 2 Basic Flow
Bạn theo dõi sơ đồ dưới đây:
Các bước trên có thể diễn giải như sau:
1. Người dùng gửi một yêu cầu (request) cho Action.
2. Controller triệu hồi ActionInvocation
3. ActionInvocation triệu hồi mỗi Interceptor và Action
4. Một kết quả được tạo ra
5. Kết quả được gửi lại ActionInvocation
6. Một HttpServletResponse được tạo ra
7. Phản hồi (response) được gửi tới người dùng
Struts 2 Standard Flow (Cấu trúc Struts 2)
Bạn theo dõi sơ đồ sau:
1. Người dùng gửi một yêu cầu (request) cho Action
2. Container ánh xạ request này trong web.xml file và lấy tên lớp của Controller
3. Container triệu hồi Controller (StrutsPrepareAndExecuteFilter hoặc FilterDispatcher). Bắt đầu từ Struts 2.1, đó là lớp StrutsPrepareAndExecuteFilter
4. Controller lấy thông tin cho Action từ ActionMapper
5. Controller triệu hồi ActionProxy
6. ActionProxy lấy thông tin của Action và Interceptor Stack từ Configuration Manager mà lấy thông tin từ struts.xml file
7. ActionProxy chuyển tiếp request tới ActionInvocation
8. ActionInvocation triệu hồi mỗi Interceptor và Action
9. Một kết quả được tạo ra
10. Một kết quả được tạo ra
11. Một HttpServletResponse được tạo ra
12. Phản hồi (response) được gửi tới người dùng
Các bài học Struts 2 phổ biến khác tại VietJack:
- Hello World (với Eclipse)
- Ví dụ Struts2 khác
- Giới thiệu Action
- Giới thiệu Interceptors
- Value Stack/OGNL