Monday, June 14, 2010

MVC với Struts2

Lời nói đầu: bài viết này nằm trong loạt 5 bài viết hướng dẫn các kỹ thuật nền tảng để xây dựng 1 ứng dụng J2EE hoàn chỉnh. Các bài viết này dành riêng cho khóa "J2EE nền tảng" củaJava Developer Training Center (JDTC). Sau đây là danh sách toàn bộ bài viết:
- Cốt lõi Java trong phần mềm quản lý J2EE
- Kết nối thế giới hướng đối tượng và quan hệ
- Giao diện người - máy thế hệ mới
- Máy ảo javascript với jquery
- MVC framework nào, đó là câu hỏi cần trả lời

Từ Struts 1 sang Struts2 là một quá trình. Quá trình này diễn ra với một khoảng thời gian im lặng đáng sợ của Struts 1. Nhiều người cho rằng Strust 1 đã chín muồi nên không cần phải phát triển thêm. Nhiều người tin rằng Struts 1 đã chết. Thế nhưng Struts đã hồi sinh kỳ diệu bằng việc nhập chung vào 1 hảo framework MVC mới nổi webwork, một framework đàn em nhưng thực sự là "anh hùng xuất thiếu niên" với hàng loạt các tính năng mới mẻ và mạnh mẽ. Trên thực tế Struts 2 là tên gọi mới của webwork - bình mới rượu mới hoàn toàn. Struts2 cho phép hàng loạt các tính năng mạnh mẽ như:
- Tích hợp đảo ngược điều khiển của Spring
- Lập trình theo khía cạnh (aspect programming) thể hiện bằng việc hiện thực các Đánh chặn (interceptor)
- Cho phép lập trình viên lựa chọn các view khác nhau như: JSP, FreeMaker, Velocity.
- Cho phép tích hợp: form validation, error handling, internationalization (i18n)

Cấu trúc của Struts2:
Một project trên Struts2 sẽ bao gồm các thành phần sau:

- Action class: đây là file Java đóng vai trò Controller trong MVC pattern. File Java này hiện thực lớp Action của Struts2 trong đó chủ yếu là hiện thực method execute. Phương thức này nói nôm na là nhận kết quả từ người dùng sau đó xử lý và trả kết quả về.

- View layer: tùy theo hiện thực cụ thể có thể là các file jsp hoặc vm dùng để hiển thị giao diện người dùng

- Data model/service layers: tương ứng với phần Model trong MVC pattern. Các file trong phần này sẽ hỗ trợ xử lý kết quả cho action class.

- beans.xml: tương tự như trong Spring, file beans.xml này khai báo các bean sẽ được dùng trong project.

- struts.xml: file này thay thế cho xwork.xml trong webwork dùng để map giữa URL và action class đồng thời map giữa result code và file view.

-web.xml: được đặt ở webapp/WEB-INF/, web.xml cho phép map giữa URL pattern (trong trường hợp này là *.action) với ServletDispatcher của Struts.

Bài tập:
1. Viết 1 ứng dụng Struts cho phép xuất ra dòng chữ "Hello Struts - I love JDTC" khi người dùng nhấn nút Say Hello

2. Viết 1 ứng dụng cho phép người dùng chọn ngôn ngữ tiếng Nauy và tiếng Anh sau đó nhấn nút Say Hello để xuất ra dòng chữ tùy theo ngôn ngữ được chọn:
- Hei Struts - Jeg elsker JDTC
- Hello Struts - I love JDTC

3. Tính hợp với ví dụ Hibernate quản lý user ở phần trước, viết các chức năng Tạo, Đọc, Cập nhật, Xoá (CRUD) cho user.

4. Thử dùng tính năng Form Validation của Struts2 để validate form nhập user

5. Xây dựng ứng dụng đa ngôn ngữ bằng i18n cung cấp bởi Struts2 cho phép 2 ngôn ngữ Nauy và Anh.

Download ví dụ mẫu
http://www.mediafire.com/file/rnonmzjnwyj/struts-example.rar

No comments:

Post a Comment